From 83f3258e655d06145c031f30bdec685c84554d1d Mon Sep 17 00:00:00 2001 From: Oriol Torrent Florensa Date: Fri, 30 Oct 2026 19:27:28 +0100 Subject: [PATCH] docs(repo): update the learned rules from the read-back of 2026-10-30 The read-back of transcripts since 2026-10-01 corrected the Archon 0.12+ note: a node with no plugins: declaration does not fail, it loads only the @builtin plugins and no MCP server, and a server that cannot connect fails the node on 0.13.0. It also adds that a closed issue cannot block another, how a completed run removes its worktree, a confirmation prompt that stops an unattended loop, and that a renamed title stays on the timeline. The evidence-node verdict note is dropped to keep the file at 12 bullets. Co-Authored-By: Claude Opus 5.5 --- .claude/rules/learned.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.claude/rules/learned.md b/.claude/rules/learned.md index c0694b11..d17f6570 100644 --- a/.claude/rules/learned.md +++ b/.claude/rules/learned.md @@ -2,13 +2,13 @@ - `git worktree add -b origin/develop` sets the new branch to track `origin/develop`, so a bare `git push` goes to `develop`, and the Archon pre-push guard does not refuse it. Add `--no-track`, or run `git branch --unset-upstream`, then push with `-u origin `. (2026-09-28) - Subagent frontmatter takes `tools` and `disallowedTools`. `allowed-tools` is not a subagent field, so an agent that declares only `allowed-tools` inherits every tool. (2026-09-28) -- A skill that runs through `/loop` or the Skill tool must not set `disable-model-invocation: true`. The Skill tool refuses such a skill, which is how `afk-loop` broke under `/loop`. (2026-09-28) +- A skill that runs through `/loop` or the Skill tool must not set `disable-model-invocation: true`. The Skill tool refuses such a skill, which is how `afk-loop` broke under `/loop`. Claude Code still asks for confirmation before it deletes some files, such as `*.visual-check.*`, even in a session started with `--dangerously-skip-permissions`, so an unattended `/afk-loop` stops there until someone answers. (2026-09-28) - A new plugin must be added to the `tag_if_changed` list in `.github/workflows/release.yml` as well as to `ci.yml`. Without that line, the release workflow on `main` never creates the plugin's tag. (2026-09-28) - When a repo skill depends on a plugin, such as `afk-loop` on `pr-review-toolkit`, enable that plugin under `enabledPlugins` in the committed `.claude/settings.json`, so every developer who clones the repo has it. (2026-09-28) -- Session opener comments on issues start with `**Opener`, in bold. A filter for comments that start with `Opener` finds nothing, so match the bold prefix. (2026-09-28) +- Session opener comments on issues start with `**Opener`, in bold. A filter for comments that start with `Opener` finds nothing, so match the bold prefix. GitHub counts only open issues in `issue_dependencies_summary.blocked_by`, so an issue closed when it is created cannot block another issue. (2026-09-28) - In Archify diagrams, a node's `tag` renders with `data-detail="fine"`, so it is hidden at default zoom and in exports. `mainPath` refuses any step to a lower column, and `col` is capped at 0 to 5, so a chain of more than six nodes cannot keep `mainPath`. (2026-09-28) - `.claude/scheduled_tasks.lock` is Claude Code runtime state and is untracked on purpose, so never commit it. (2026-09-28) -- Before Archon 0.11.0, a `loop:` node ignores `allowed_tools` and `denied_tools` without a warning. From 0.11.0 it honours both, but `hooks`, `mcp`, `skills` and `sandbox` stay ignored on `loop:`, so check the installed Archon version before you rely on a tool rule inside a loop. `.claude/skills/archon/` is repo-authored, not vendored, so fix its stale `references/parameter-matrix.md` by hand. (2026-10-01) -- Up to Archon 0.11, a node does not get a plugin that only the committed `.claude/settings.json` declares: the plugin reaches a node after someone installs it, a node loads user-scope plugins by default, and `settingSources: [project]` on the node removes them. From Archon 0.12.0, a Claude node loads no installed plugin unless it names it in `plugins: [name@marketplace]`, and it fails before its first turn if a named plugin is missing or an unnamed one loads. On every version, a node whose Skill or agent call fails still finishes green. (2026-10-21) +- Before Archon 0.11.0, a `loop:` node ignores `allowed_tools` and `denied_tools` without a warning. From 0.11.0 it honours both, but `hooks`, `mcp`, `skills` and `sandbox` stay ignored on `loop:`, so check the installed Archon version before you rely on a tool rule inside a loop. From 0.12, a completed run removes its own worktree when the worktree is clean, and keeps it when it holds uncommitted or untracked files. `$ARTIFACTS_DIR` sits outside the worktree and survives, so copy anything a run leaves inside its worktree out before the run ends. `.claude/skills/archon/` is repo-authored, not vendored, so fix its stale `references/parameter-matrix.md` by hand. (2026-10-01) +- Up to Archon 0.11, a node does not get a plugin that only the committed `.claude/settings.json` declares: the plugin reaches a node after someone installs it, a node loads user-scope plugins by default, and `settingSources: [project]` on the node removes them. From Archon 0.12.0, a Claude node loads no installed plugin unless it names it in `plugins: [name@marketplace]`, and it fails before its first turn if a named plugin is missing. Measured on 0.13.0, a node with no `plugins:` still loads the `@builtin` plugins, reaches no MCP server and does not fail, and a named plugin's skills reach the node only when `skills:` names them too. Also on 0.13.0, a declared MCP server that cannot connect fails the node before its first turn, even with `optional: true`. On every version, a node whose Skill or agent call fails still finishes green. (2026-10-21) - `/pr-review-toolkit:review-pr` takes its scope from `git diff --name-only`, which reads the working tree, not a merge-base. It finds the PR with `gh pr view`, so it works on GitHub only, and a caller must pass the scope explicitly. (2026-10-01) -- The `evidence` node in `apps/claude-code/unic-archon-dlc/.archon/workflows/unic-dlc-build.yaml` sets `verdictState` to `pass`, `fail` or `unresolved`. Never write `green` or `red` in a criterion, even where an issue says "red verdict" in prose. (2026-10-01) +- When you rename a GitHub issue or PR, the old title stays in a renamed-title event on the timeline, and neither the API nor "Delete revision from history" removes it. An edited body or comment keeps its old text as a revision until someone deletes that revision by hand, so check a text for NDA terms before you post it for the first time. (2026-10-30)