chore: untrack generated agent instruction files (CLAUDE.md, AGENTS.md)#6
chore: untrack generated agent instruction files (CLAUDE.md, AGENTS.md)#6tachyon-beep wants to merge 2 commits into
Conversation
These are filigree-generated agent instruction files (carrying the `<!-- filigree:instructions:... -->` marker) regenerated by the session-start hook on every run, so tracking them produces churn-only diffs as the filigree version bumps. They are already listed in .gitignore; untrack them so the ignore actually takes effect (git keeps tracking files added before they were ignored). They remain on disk for local use and continue to be regenerated. Mirrors PR #5's untracking of local integration config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 806bbb80f8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,119 +0,0 @@ | |||
| <!-- filigree:instructions:v3.0.0rc1:b661cb3d --> | |||
There was a problem hiding this comment.
Add ignore entries before untracking generated files
When the session-start hook regenerates AGENTS.md or CLAUDE.md, these paths are no longer tracked but are also not ignored: I checked .gitignore in this commit and it ends at .loomweave/loomweave.lock, and git check-ignore -v AGENTS.md CLAUDE.md returns no match. In that normal regeneration scenario the files will show up as untracked, so this does not actually eliminate the churn-only dirty working tree and makes accidental recommits likely; add explicit ignore patterns before removing them from the index.
Useful? React with 👍 / 👎.
Adds the ignore entries that make the prior untracking stick — without these, the session-start hook's regenerated copies would show up as untracked and could be re-added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
hooks.py re-encoded the marker format with its own regex
(<!-- legis:instructions:(v[^:]+:[0-9a-f]+) -->), independently of install.py,
which builds the marker and owns INSTRUCTIONS_MARKER. A change to the marker
spacing or token shape in the writer would silently desync the reader, breaking
the SessionStart / MCP-boot drift refresh — the hook's entire job.
Move the token-extraction helper (_extract_marker_token) into install.py next
to _build_instructions_block / _marker_token. Its regex is now re.escape'd from
the INSTRUCTIONS_MARKER constant (the prefix can't desync) and captures the
token opaquely as \S+ rather than re-encoding the v{version}:{hash} shape, so a
future token-shape change needs no edit here. hooks.py imports it; its now-unused
`re` import is dropped.
Relocate the marker-token tests to test_install.py (the writer's home) and
strengthen the round-trip to parse the ACTUAL writer output:
_extract_marker_token(_build_instructions_block()) == _marker_token(). A future
marker-format change now fails this loudly instead of silently desyncing.
Full suite 699 passed, ruff (src+tests) + mypy clean, coverage floors hold.
rc4 review finding #6 (legis-bd49bb8048).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oute root (opp #6) scan_route returned `{outcome: ROUTED, routed:[...]}` with no top-level posture field, so an agent relaying "governance passed" could not tell a keyless dev-grade pass (unverified/dirty) from a CI-signed `verified` pass — the posture was only buried in each routed record's provenance, and absent entirely when nothing routed. Same vacuous-green fidelity gap as wardline W2. - `route_wardline_scan` now returns `RoutedScan(routed, artifact_status)` instead of a bare list, surfacing the scan-level `artifact_status` that `verify_wardline_artifact` already computes - both surfaces echo it at the response root: the MCP `scan_route` tool and the HTTP `/scan-route` adapter (identical contract) - new MCP test asserts a keyless unsigned scan echoes `artifact_status: "unverified"` at the top level; the exact-shape routing test gains the field Closes gap-analysis opp #6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Untracks
CLAUDE.mdandAGENTS.md— both are filigree-generated agentinstruction files (carrying the
<!-- filigree:instructions:vX.Y.Z:hash -->marker) that the session-start hook regenerates on every run. Tracking them
produces churn-only diffs whenever the filigree version bumps (e.g. the
v3.0.0rc3change that left them dirty in the working tree).They are already listed in
.gitignore(lines 22–23), but git keepstracking files that were committed before being ignored — so the ignore had no
effect until now. This
git rm --cachedmakes it take hold..gitignorechange needed (already present)..mcp.json,loomweave.yaml,wardline.yaml).🤖 Generated with Claude Code