Repository navigation
chore: TRA-1128 platform — ignore-block alignment, dangling refs, AGENTS.md split - #620
Merged
mikestankavich merged 4 commits intoAug 31, 2026
Conversation
… text TRA-1128 AC#1 requires identical text across repos so no repo is subtly different again. Platform's block carried a trailing "Named to match ble-mcp-test." clause that a previous session added while relaying and then described as adopted verbatim. It is not in the ticket. Dropping it makes platform byte-identical with docs and infra, verified by hash over the 14 lines rather than by eye: sed -n '187,200p' .gitignore | sha256sum cfc7cf430d18af4d3e788cfc66b1a0ab5a0e509c06e996b4d285362088a6d225 Refs: TRA-1128 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7p2hFrE6ZFWS91XvyFQcV
…tickets PR #586 untracked docs/superpowers/ but left five pointers into it across four files, so the repo has been documenting paths that do not exist. The sweep's blast radius is not something the ticket specifies; infra hit the same thing and flagged it. Test applied per file: does the surrounding prose still mean what it says without the link? Ticket numbers outlive paths, so where the reference carried real information it is retargeted rather than dropped. accumulator.ts behaviours are already described in full above; cite TRA-821 instead of the spec path auth_error.go "a short canonical set" is undefined without its pointer, so cite TRA-407 to keep it findable deploy/edge/README already carried TRA-988 beside the two paths load-tests/ingest finding is stated inline above; pointer was pure redundancy Nothing promoted out of the deleted tree, per the owner's "no case-by-case triage, no promoting files just in case." Refs: TRA-1128 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7p2hFrE6ZFWS91XvyFQcV
Contributor
|
🚀 Preview Deployment Update ✅ This PR has been successfully merged into the preview branch. The preview environment will update shortly at: https://app.preview.trakrf.id |
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…ix the sweep's dangling references
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…ix the sweep's dangling references
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…ix the sweep's dangling references
TRA-1128. Shared process becomes a root AGENTS.md, byte-identical across docs, platform and infra, imported by CLAUDE.md via a bare @AGENTS.md. Root-level and conventionally named, so a human finds it and non-Claude tooling reads it. File pulled from trakrf/docs#218 rather than retyped: sha256 f01ea43d7154e3abe3096bf0edc3ead069ba9ac7064c00bc606fcfcb2fcb48d3 CLAUDE.md keeps only what is specific to this repo, stated rather than explained: 496 words to 209. Worktree conventions are out entirely -- that is csw.json configuration, not prose, and not a workflow to impose. CONTRIBUTING.md is the single source for branch, commit and merge rules, which required fixing three things it got wrong: - branch naming said feature/add-xyz, dead letter in every repo. Now <type>/<slug>, with <type>/<ticket>-<slug> named for maintainers. An outside contributor has no ticket number and could not follow it. - conventional commits were marked "Optional ... no tool depends on it", contradicting CLAUDE.md, which stated them as a rule. They are required; enforcement is manual, which is a different claim. - no merge policy was stated at all. Silence in a contributor guide reads as no policy. Now: every change via PR, --merge, never squash or rebase. Import verified syntactically -- exactly one bare @ in the repo's instruction files, the intended one. Import parsing skips backticks, so a backticked path is silently not imported and a stray bare @ silently is. Not yet observed loading; /context is user-facing and confirms it. Refs: TRA-1128 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7p2hFrE6ZFWS91XvyFQcV
Contributor
|
🚀 Preview Deployment Update ✅ This PR has been successfully merged into the preview branch. The preview environment will update shortly at: https://app.preview.trakrf.id |
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…ix the sweep's dangling references
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 30, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 31, 2026
…gling refs, AGENTS.md split
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 31, 2026
…gling refs, AGENTS.md split
TRA-1128. The shared file carried six lines of preamble explaining its own mechanism, which violated the state-do-not-explain bar the file itself sets. Owner's catch. Removed as description: how CLAUDE.md imports it (the reader already has the file), why the pointers exist, and the note that ble-mcp-test is out of the family (no session in these three repos asks). Kept as constraint: identical across three repos, the repos are public, the scope bar, and both pointers as routing. Six lines to three, 212 words to 187, no rule lost. Pulled from trakrf/docs#218, not retyped: sha256 8aae612ddf7bea89358c13df03ae395aef041533afb019406c15d7c9bd9ac3c1 Supersedes f01ea43d…, which is now dead and which two open PRs still carry. A superseded hash is indistinguishable from a current one, so the target is the branch, not any hash quoted in a message. Refs: TRA-1128 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7p2hFrE6ZFWS91XvyFQcV
Contributor
|
🚀 Preview Deployment Update ✅ This PR has been successfully merged into the preview branch. The preview environment will update shortly at: https://app.preview.trakrf.id |
trakrf-preview-sync Bot
pushed a commit
that referenced
this pull request
Aug 31, 2026
…gling refs, AGENTS.md split
mikestankavich
deleted the
chore/tra-1128-align-ignore-block-and-split-process-doc
branch
August 31, 2026 11:38
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.
Platform's share of TRA-1128, in three commits. PR #586 did the ignore/untrack half; this finishes it and adds the shared-process split.
1. The ignore block did not match the ticket
AC#1 requires identical text across repos "so no repo is subtly different again." Platform's block carried a trailing
Named to match ble-mcp-test.clause that a previous session added while relaying the text, then described on the ticket as "adopted verbatim." It is not in the ticket.Dropped. Verified by hash rather than by eye, since three sessions each posted a "paste-verbatim canonical block" and no two matched:
All four repos report that hash.
2. The sweep left five dangling references
git rm -r --cachedremoved the tree; nothing removed the pointers into it. Since #586 merged, platform has been documenting paths that do not exist, with a green build throughout.Test applied per file: does the surrounding prose still mean what it says without the link? Ticket numbers outlive paths, so references carrying real information were retargeted rather than dropped.
frontend/src/worker/cs108/barcode/accumulator.tsbackend/internal/util/httputil/auth_error.godeploy/edge/README.mdload-tests/ingest/README.mdNothing promoted out of the deleted tree, per "no case-by-case triage, no promoting files just in case."
3. Shared working agreements split into AGENTS.md
Root
AGENTS.md, byte-identical across docs, platform and infra, imported byCLAUDE.mdvia a bare@AGENTS.md. Root-level and conventionally named, so a human finds it and non-Claude tooling reads it.Pulled from trakrf/docs#218 via
gh apirather than retyped — retyping is what produced three non-matching canonical blocks earlier in this ticket.CLAUDE.mdkeeps only repo specifics, stated rather than explained: 496 → 209 words, 51 → 26 lines. Combined with AGENTS.md, 421 words against main's 496 — a real reduction, but only because platform's file was unusually fat. Not comparable to the other repos' figures.Worktree conventions are out entirely — that is
csw.jsonconfiguration, not prose, and not a workflow to impose on others. One line survives the cut because it is a build fact rather than a workflow mandate:just bootstrapa fresh worktree before validating, or thego:embedtargets are missing and every check fails for that reason alone. That has already invalidated a verification here.CONTRIBUTING.md is now the single source for branch, commit and merge rules
Making it so required fixing three things it had wrong. None of these would have surfaced by grepping for superpowers; the boundary question flushed them out sideways.
feature/add-xyz— dead letter in every repo. Now<type>/<slug>, with<type>/<ticket>-<slug>named for maintainers. An outside contributor has no ticket number and could not follow the maintainer form.CLAUDE.md, which stated them as a rule. They are required; enforcement is manual, which is a different claim from optional.--merge, never squash or rebase.Verification
just validate— green, exit 0.gitignoreblock itself; zero dangling referencesgit check-ignore -v, not merely present@acrossCLAUDE.md,AGENTS.mdandCONTRIBUTING.md— the intended import, re-grepped after adding itThe import is confirmed to load. Not inferred from the documentation, and not from
/context— observed via anInstructionsLoadedhook in a fresh session, payload verbatim:{"hook_event_name":"InstructionsLoaded", "file_path":".../AGENTS.md","memory_type":"Project", "load_reason":"include","parent_file_path":".../CLAUDE.md"}load_reason: "include"withparent_file_pathnaming CLAUDE.md is the harness stating the@AGENTS.mdimport resolved at session start. The check carried a control —CLAUDE.mditself appears withload_reason: "session_start"— without which an empty log would have been evidence of nothing rather than evidence of a failed import.Observed in
trakrf/infra. This repo's construct is byte-identical in the relevant respect (a bare@AGENTS.mdat CLAUDE.md line 3, the only@in the file), so the mechanism is confirmed; platform's individual load was not separately instrumented.Import parsing skips backticks, so a backticked path is silently not imported and a stray bare
@silently is — infra found a latent case held off only by the backticks aroundgit@github.com:trakrf:infra.git. This repo: exactly one@acrossCLAUDE.md,AGENTS.mdandCONTRIBUTING.md, the intended import, re-grepped after adding it.Refs: TRA-1128
🤖 Generated with Claude Code
https://claude.ai/code/session_01W7p2hFrE6ZFWS91XvyFQcV
Note on the branch name.
…-and-split-process-docis misleading: it namesPROCESS.md, which was considered and rejected in favour ofAGENTS.md. The name predates the ruling. Not renaming it — that would break the PR history for a cosmetic gain — but a branch name is not a deliverable, and this one describes a mechanism that did not land.Commit 4 — AGENTS.md preamble cut. The shared file carried six lines explaining its own mechanism, violating the state-don't-explain bar the file itself sets. Cut to three clauses that constrain rather than describe: identical across three repos, the repos are public, the scope bar, plus both pointers as routing. 212 → 187 words, no rule lost. This superseded
f01ea43d…, which had been quoted as the byte-identity target throughout this PR and reads exactly as authoritative as the live value. The target is the branch, not any recorded hash.