Repository navigation
feat(codex-operations): add the apply action to codex-changelog - #121
Conversation
apply runs only when the user names it. It reuses the rows diff saved (now written to rows.json in the fetch --out directory), gates scope with the user, makes one branch and pull request per owner plugin, drafts large and replace rows as issues created only after the user confirms the batch, records final rows in the ledger's Decisions table, and moves the read marker no further than the earliest release an open row cites. scripts/apply_plan.py holds the deterministic parts: row checks, scope selection, owner grouping, and the marker computation and write. codex-operations goes from 0.2.0 to 0.3.0. Closes #116 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the pre-ready code and security reviews: - The marker no longer moves past releases a later explicit range skipped: fetch writes after.txt for a default range, and marker prints gap: and stays put for a range that starts after the marker without it. - A surface inside .codex-plugin/ belongs to the plugin above it. - Row fields must be strings; control characters, and `|` or backticks in surface and record, are refused so they cannot forge output lines or ledger table cells. - A symlinked ledger is refused; the marker write keeps CRLF endings. - A malformed releases.json exits 3, not with a traceback. - plan prints each row's sentence; pull requests, like issues, wait for the user to confirm the batch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 6m 33s —— View job Security review — PR #121
Reviewed the files changed in this PR (not the unrelated repository), focusing on the 1 finding (adversarially verified by a separate verifier subagent before reporting — confirmed): IMPORTANT — No CRITICAL issues found. GitHub Actions hardening (triggers, permissions, pinning) is zizmor's lane and out of scope here; none of the changed files touch workflow YAML anyway. |
|
Claude finished @kyle-sexton's task in 5m 56s —— View job Claude's review of #121
No blocking findings. I read the full diff (
I did not independently execute Security-shaped aspects (path traversal, injection via row fields, symlink handling) are intentionally left to the dedicated security-review lane on this repo rather than duplicated here. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20b43d1a8b
ℹ️ 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".
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. |
|
claude-review has reviewed this pull request through 0349331; a later push is reviewed from there. |
|
claude-security-review has reviewed this pull request through 0349331; a later push is reviewed from there. |
- The ledger must sit inside the repository root (--root, default git toplevel) with no symlink or `..` on the way. - Final rows print as ledger-row: lines even when a range gap holds the marker, so declined and filed rows still reach the Decisions table. - Row fields refuse Unicode format characters (bidi overrides, zero-width) and line or paragraph separators, not only ASCII controls. - agents/openai.yaml says the skill applies on request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 59s —— View job Security review — PR #121 (incremental, since
|
|
Claude finished @kyle-sexton's task in 3m 2s —— View job Claude's incremental code review of #121
No blocking findings. This commit (
I also checked the test helper change ( I was not able to execute |
Closes #6903
Summary
The docs-naming configuration can now express ADR 0059's scope, so
/docs-naming:audit-file-namesinventories the same setscripts/check-docs-naming.shenforces, andscripts/check-docs-naming.test.shcompares the whole gate with the emitted one instead of only itsdocs/half.Fix
rootsentry may be an object,{"path", "extensions", "exempt_paths"}.extensionslimits the root to those extensions, matched in any case (letters and digits only).exempt_pathstakes paths out of the basename rule only when no other root claims them without exempting them, and the case-collision check still covers them. A plain string root behaves as before. Documented inplugins/docs-naming/reference/config.md("Root objects").plugins/docs-naming/scripts/root-scopes.jqturnsrootsinto git pathspecs.inventory.shandemit-gate.shboth read it, so the audit and the gate share one definition.trinstead of one per path: with a repository-wide root,--checkon this repo took 9s per-path and takes 0.2s now.setup checkvalidates the root-object shape.emit-gate.shrefuses an extension outside[A-Za-z0-9]and refuses a newline in a path or exempt entry..claude/docs-naming.jsondeclares the ADR 0059 scope:docs, plus.limited tomd, exempting**/fixtures/**,**/evals/**and**/vendor/**.check-docs-naming.test.shseeds the whole scope: markdown outsidedocs/, the excluded trees, collisions, and role names outsidedocs/. It also seeds every name in the script'sEXEMPT_NAMESas well as the config's. New case 11d: a name exempt in the script but missing from the config fails the drift check. New config mutants (root object removed, an exempt path dropped, extension changed) must also be caught.Verification
scripts/check-docs-naming.test.shpasses 38/38,scripts/check-docs-naming.sh --checkis clean, and the emitted gate from the repo config is clean on this tree.inventory.shon this repo: 2817 scanned, 0 offenders, which matches the gate.check-changelog-fragments.sh --checkpasses.check-script-contract.test.shfails 2check-html-assetscases locally becausenpm cihas not been run. That is unrelated, and main shows the same result.Related
🤖 Generated with Claude Code