Repository navigation
Conversation
…and tests State each decision and rule as a fact instead of naming who gave it. Comments, docs, the CHANGELOG, test headers and test titles lose "founder ruling", "the founder's bug report", the quoted words of the owner and one local path that held a user name; dated decisions keep their date. One string changes: the IdentityHaltError text no longer carries the owner's sentence verbatim. It states the same rule in plain words and keeps the cause and the remedy, and tests/identity-halt.test.js asserts the new wording. No code changes: the AST of every changed JS file is identical with strings masked, and the only string values that differ are that message, its assertion and one test title. Kept as vocabulary: founderAction, detectFounderAction, SYM_FOUNDER_ANCHOR, the founder key/root/anchor role, and the nodes, task owners and sources named 'founder'.
tests/no-owner-citings.test.js scans git ls-files (a directory walk when there is no .git, as in an export) and fails on a ruling, a bug report, quoted words, a dated attribution or a personal name. "founder" is deny-by-default: every occurrence must be covered by the allowed vocabulary (identifiers, env vars, the founder key/root/anchor role, nodes named 'founder', the detector's keywords) or a per-file allowance. tests/fixtures/**, package-lock.json and binaries are skipped. The scanner is exercised on a planted tree: each kind of citing is caught, the vocabulary passes, and a citing on a line that also holds vocabulary is still caught. Against the tree before the rewrite the guard reports every citing, including the ones the plain search missed.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
The library no longer cites its owner. Each decision and rule is stated as a fact; none says who gave it. Behaviour is unchanged.
What changed
.claude/skills/sym/SKILL.md,.agents/skills/sym/SKILL.md, still identical) no longer say "The founder is solo".IdentityHaltErrortext carried the owner's sentence verbatim. It now states the same rule in plain words and keeps the cause and the remedy.tests/identity-halt.test.jsasserts the new wording.tests/no-owner-citings.test.js: scansgit ls-files(a directory walk when there is no.git) and fails on a ruling, a bug report, quoted words, a dated attribution or a personal name. "founder" is deny-by-default: each use must be covered by the allowed vocabulary (identifiers,SYM_FOUNDER_ANCHOR, the founder key/root/anchor role, nodes named'founder', the detector's keywords).tests/fixtures/**, the lockfile and binaries are skipped.Kept (vocabulary, not citings)
founderAction,_meta.founderAction,detectFounderActionand the words that describe that signal inlib/mesh-agent.js;SYM_FOUNDER_ANCHOR; the founder key/root/anchor role (CHANGELOG, SECURITY.md,docs/AUTHORITY-OPERATOR.md,lib/memory-store.js,tests/earned-authority-node.test.js); the task owner'founder'inbin/sym-daemon.js; the node name indocs/AUTHORITY-OPERATOR.md; the source'founder'intests/audit-delivery-authorship.test.js.Hits by the search pattern, by top-level directory
.agents.claudeCHANGELOG.mdSECURITY.mdbindocslibtestsProof that only comments, docs and strings changed
Every changed JS file (26) was parsed before and after; with string values masked the syntax trees are identical. The string values that differ: the three pieces of the halt message, the regex that asserts it, and one test title (
(founder ruling, #26)is now(#26)).Beyond the search pattern
The plain search missed: a quoted instruction attributed to "user" (
tests/product-name.test.js), two "CTO ruling" notes (lib/core/cmb-signing.js,lib/core/record-shape.js), a "CTO measured" and a "CTO gate" note (lib/core/record-shape.js,lib/node.js), and a scratch path holding a user name (tests/core-secure-final-review.test.js). All are rewritten. Left as they are:docs/role-vs-agent-id.md(author and reviewer roles of a design note), "Flagged to the CTO" inlib/core/cmb-encoder.js(a question, not a decision) and the reviewer rulings credited to codex. Against the tree before this change the guard reports every citing, including these.Results
tests/no-owner-citings.test.js: 28 pass.--test-concurrency=2): 1679 tests, 1675 pass, 0 fail, 4 skipped (as before). Integration: 6 of 6.scripts/gate-two-stock-nodes.mjs: passed.npm audit: 0 vulnerabilities.lib/room-ownership.jsit fails and names the line.