Claudinite growth: extract lessons - #156
Merged
Merged
Conversation
Growth-extract run for slot d2026-08-09 (dispatch issue #151), over both halves of the window. Activity half (commits 5238ddc, 41fa4f7; PRs #124, #118, #138): nothing new. #124 was a canon-dedup prose strip whose method the shared growth pack owns, #118 a one-line .gitignore for a harness artifact, and #138's rejected auto-merge arm was already captured by the rule PR #144 landed. None of the three PRs carried any review discussion. Conversation half (fresh pass over origin/conversation-logs 2026-08-05 → 2026-08-08): two keepers, both from the 2026-08-08 capture, both landing in local/laughcounter's RULES.md beside the no-pull_request-CI rule they extend. - The hand-merge deliver-pr.md licenses on a `clean status` rejection comes back to the executor as a [Merge Without Review] security warning. It is structural in this repo (every arm is rejected, so every merged-pr task trips it) and carries no verdict either way; the previous run's executor spent five extra tool calls re-deriving the license. State the three licensing facts up front, and never let the warning reverse a merge decision — that is what left #138 open. - The MCP GitHub toolset has no comment-update tool, so a comment posted wrong can only be appended to. A placeholder timestamp in #143's claim comment is now permanent, with a "Correction:" comment under it. There is no ambient clock; run `date -u` before asserting one. Upgrade pass (prose-to-checks) over this run's own additions: declined with reasoning. Both rules govern agent behaviour at runtime — a warning string in a task notification, the absence of a tool in the session's toolset — and neither constrains a static signature in the repo artifact that a scan could observe, so neither is convertible. Verified: check_the_world clean, selftest --strict 7/7, on-device-privacy pack tests 14/14, macos-audio pack tests 9/9. Refs #151 Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Aug 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Growth-extract run for slot
d2026-08-09, dispatch issue #151. Both halves in scope; two lessons landed, both from the conversation half.Activity half — nothing new
Scope was commits
5238ddc,41fa4f7and PRs #124, #118, #138.5238ddc) is a canon-dedup prose strip — the "strip to the residual, repo-specific half" method it demonstrates is owned by the shared growth pack, not a repo lesson.41fa4f7) is a one-line.gitignorefor a harness artifact.None of the three carried any review discussion (
get_commentsempty on all three), so there was no argued verdict to mine.Conversation half — two lessons
Fresh pass over
origin/conversation-logs, 2026-08-05 → 2026-08-08 (issues #128, #130, #134, #137, #143). The four older logs re-confirmed the rule #144 already landed and yielded nothing further; both keepers come from the 2026-08-08 capture, and both go in.claudinite/local/packs/laughcounter/RULES.mdimmediately beside the no-pull_request-CI rule they extend.1. The licensed hand-merge comes back as a
[Merge Without Review]security warning. When a scheduled task squash-merges its own PR after the auto-merge arm is rejectedclean status— whichdeliver-pr.md§3 licenses and this repo's shape guarantees — the harness prefixes the subagent's completion notification with a security warning naming the merge as unreviewed. It is structural: every arm here is rejected, so everymerged-prtask trips it, and it carries no verdict either way. The previous run's executor spent five extra tool calls re-readingdeliver-pr.md, the PR andverify-outcome.mjsto get back to the same answer. The rule: state the three licensing facts up front (this repo'smaintenance.delivery, the arm rejection verbatim, the declared outcome ceiling), and never let the warning reverse a merge decision already reasoned through — that failure is why #138 is still open.2. Nothing posted to GitHub can be edited afterwards. The MCP GitHub toolset these runs use has
add_issue_commentand no comment-update tool at all. A run claiming #143 wrote a placeholder2026-08-08T00:00:00Zinto its claim comment intending to fix it, found no edit tool, and left the issue permanently carrying both the wrong timestamp and a "Correction:" comment under it. There is no ambient clock in a session;date -uis one Bash call, and the same "resolve it, then post" holds for every PR number, sha and label a comment asserts.The pack README's rule table also picks up the row for the rule #144 landed, which was never added there.
Upgrade pass — declined, with reasoning
prose-to-checksrun over this run's own additions only. Both rules govern agent behaviour at runtime — a warning string in a task notification, and the absence of a tool from the session's toolset — and neither constrains a static signature in the repo artifact that a post-hoc scan could observe. Neither is convertible; no check shipped.Verification
node .claudinite/shared/engine/checks/check_the_world.mjs— clean (exit 0)node .claudinite/shared/engine/selftest.mjs --strict— 7 probes passednode --test .claudinite/local/packs/on-device-privacy/pack.test.mjs— 14 pass / 0 failnode --test .claudinite/local/packs/macos-audio/pack.test.mjs— 9 pass / 0 failRetention prune not due (
retention_daysunset — capture-only adoption); nothing deleted fromconversation-logs. Writes touch only.claudinite/local/packs/; nothing under the shared canon.Refs #151.
Generated by Claude Code