Visitar URL original
Widen the Runtime-Secrets Check to Compose Sets and Any Letter Case, and Add a Short-Form AUDIT.md Snippet by ptr727 · Pull Request #4153 · ptr727/ProjectTemplate · GitHub
Skip to content

Widen the Runtime-Secrets Check to Compose Sets and Any Letter Case, and Add a Short-Form AUDIT.md Snippet - #4153

Merged
ptr727 merged 10 commits into
developfrom
burndown/audit-secrets-short-form
Nov 13, 2026
Merged

ptr727 merged 10 commits into
developfrom
burndown/audit-secrets-short-form

Conversation

@ptr727

@ptr727 ptr727 commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

spec/validate.py's carried-link check now reads an entry's reference text, resolving its links where the carried file lands, so the snippet's links are checked rather than the hub's own AUDIT.md, and its errors name the file read. The AUDIT.md exemption from the template-repository link check is dropped, since the hub's own AUDIT.md is no longer the text read.

The reference also moves what dates a downstream AUDIT.md for the intent staleness advisory, from docs/repo-config.md to the snippet, per spec/fidelity-model.md.

Tests

  • A new CarriedRelativeLinkCase test reads a reference entry's links, and fails against develop's spec/validate.py.
  • A new SecretStemCase test resolves a compose file two devcontainer sets list against each set's base, and a CarriedRelativeLinkCase test rejects a template-repository link in a referenced AUDIT.md snippet. Each fails without its fix.
  • A SecretStemCase case keeps a .gitignore guard line silent where a class in the same file names .secrets.
  • New SecretStemCase cases cover a capitalized folder from a .gitignore line and a compose path, a character class, a floating line a differently cased code directory must not silence, a dotted folder in another case, and a devcontainer compose set. Each new case fails against develop's spec/audit.py.
  • tests/test_audit*.py and tests/test_spec_validate.py pass, spec/validate.py passes, ruff and mypy are clean, and scripts/build_dist.py --check reports the generated skill trees current.
  • The prose gate on the diff against develop, markdownlint, and cspell report no issues.

Closes on promotion: #3837, #3840, #3842, #3844, #4118

🤖 Generated with Claude Code

ptr727 and others added 5 commits November 13, 2026 06:55
Resolve a devcontainer compose set's paths against its first file, and
match a secrets folder name in any letter case, a .gitignore character
class included. Describe the widened check in AUDIT.md and checks.json.

Give the downstream short-form AUDIT.md a canonical snippet carrying the
develop-checkout clause, referenced from spec/files.json, STANDUP.md, and
standup-a-repo. Drop the coordination issue references under spec/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read a devcontainer's dockerComposeFile list through the same separator
normalization the editor reader uses, so a backslash path sets a base.
State in AUDIT.md that a file in a .secrets/ spelled in another case
reports that directory, and say where <required-secrets> comes from.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the Secrets Placeholder

A floating .gitignore line names its secrets segment case-sensitively, so
only a code directory that segment matches silences it. The short-form
snippet sends the reader to spec/audit.py for the required secret set
rather than restating what the hub computes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y Entry

The model placeholder takes the registry default where an entry omits
workflowModel, and the owner is read from the entry's url, so the claim
was false for both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s Segment Test

The carried-link check reads the hub copy a carrier adapts, so the
AUDIT.md snippet's links are judged where the carried file lands. A
.gitignore naming .secrets through a class keeps its guard line silent,
through the same segment test misnamed_secrets uses. The snippet no
longer claims one apply re-applies the whole baseline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings November 13, 2026 15:20
@ptr727

ptr727 commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 7116e87e9e0949565ac5f109b7f7851d5c10a4b9, the content this pull request carries at that commit against develop, and it recorded 1 finding.

@coderabbitai

coderabbitai Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 57 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 47dee74 and cf09e99.

Files ignored due to path filters: 3

  • .claude-plugin/fleet-skills/.source-digests/standup-a-repo is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/skills/standup-a-repo/SKILL.md is excluded by !.claude-plugin/fleet-skills/**
  • .github/skills/standup-a-repo/SKILL.md is excluded by !.github/skills/**
Files selected for processing: 13

  • .agents/skills/standup-a-repo/SKILL.md
  • AUDIT.md
  • STANDUP.md
  • catalog/snippets/configs/AUDIT.md
  • spec/audit.py
  • spec/checks.json
  • spec/divergences.json
  • spec/fidelity-model.md
  • spec/files.json
  • spec/validate.py
  • tests/test_audit.py
  • tests/test_audit_helpers.py
  • tests/test_spec_validate.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

…Reports

Live settings are fixed by configure.sh apply, and an operational
repository commits in place on develop, so the route did not fit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Active issues remain: the audit guidance mandates pull requests where the operational model permits signed commits, and the compose-file check loses project-base associations, causing incorrect secret-path findings.

2 open issues
What changed in this PR

This pull request broadens runtime-secrets auditing for case variants and Compose file sets, adds a canonical downstream AUDIT.md snippet, and updates carried-link validation and documentation.

Changes:

  • Resolve Compose paths relative to the first file in each devcontainer Compose set.
  • Match secrets directories case-insensitively and expand related tests and audit documentation.
  • Add the canonical downstream AUDIT.md snippet with reference and placeholder validation.
  • Update standup guidance and generated skill distributions, and remove coordination references from spec content.
File Description
tests/​test_spec_validate.py Adds coverage for validating links from referenced files at their carried destinations.
tests/​test_audit.py Updates runtime-secrets audit expectations for the expanded matching behavior.
tests/​test_audit_helpers.py Adds case-insensitive secret, dotted-directory, and Compose-set audit scenarios.
STANDUP.md Points downstream repository setup guidance to the canonical AUDIT.md snippet.
spec/​validate.py Resolves carried-link checks against the referenced file's destination context.
spec/​files.json Declares the AUDIT.md reference and its required placeholders.
spec/​fidelity-model.md Updates fidelity guidance for reference-based intent staleness and removes coordination references.
spec/​divergences.json Removes coordination references from the divergence data.
spec/​checks.json Documents the widened runtime-secrets check and its inputs and findings.
spec/​audit.py Implements case-insensitive secrets matching and Compose project-base resolution.
catalog/​snippets/​configs/​AUDIT.md Adds the canonical short-form downstream audit instructions.
AUDIT.md Documents the expanded runtime-secrets audit scope and reporting behavior.
.github/​skills/​standup-a-repo/​SKILL.md Updates the generated GitHub skill to use the canonical audit snippet.
.claude-plugin/​fleet-skills/​skills/​standup-a-repo/​SKILL.md Updates the generated Claude skill distribution with the canonical audit guidance.
.claude-plugin/​fleet-skills/​.source-digests/​standup-a-repo Refreshes the generated standup skill source digest.
.agents/​skills/​standup-a-repo/​SKILL.md Updates the authored standup skill to reference the canonical audit snippet.

Review effort: Lite

Comment thread spec/audit.py Resolved
Comment thread catalog/snippets/configs/AUDIT.md Resolved
The check judges a secret file name a compose or editor config file
names. A .gitignore line reports a misnamed directory and names no file
the check judges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.75%. Comparing base (b38e084) to head (cf09e99).
⚠️ Report is 187 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #4153      +/-   ##
===========================================
- Coverage    81.60%   76.75%   -4.86%     
===========================================
  Files           26       40      +14     
  Lines         9070    14174    +5104     
===========================================
+ Hits          7402    10879    +3477     
- Misses        1668     3295    +1627     
Flag Coverage Δ
python-3.13 76.75% <100.00%> (-4.86%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727

ptr727 commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 3ce9c12e105582a1dc7d407234233e7d92efcb35, the content this pull request carries at that commit against develop, and it recorded 3 findings.

ptr727 and others added 3 commits November 13, 2026 07:35
…ppet's Template Links

A devcontainer config's path and an editor path with no extension are
not judged, so AUDIT.md and checks.json say only what is. The carried
AUDIT.md snippet no longer inherits the hub AUDIT.md's exemption from
the template-repository link check. Each finding the snippet's
self-audit surfaces names the hub commit its run read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Base

A compose file shared by two dockerComposeFile sets with different first
files resolves against each set's project directory, so neither set's
paths are missed. The secrets.stems description points at AUDIT.md for
which named files the check judges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An entry with a reference is read from that file, so an error names it
rather than the entry's path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head cf09e99d1ad71648a91621a98e4b9573930330f5, the content this pull request carries at that commit against develop, and it recorded 0 findings.

@ptr727

ptr727 commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@ptr727

ptr727 commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

/review

@coderabbitai

coderabbitai Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ptr727
ptr727 merged commit d8aa6f8 into develop Nov 13, 2026
13 checks passed
@ptr727
ptr727 deleted the burndown/audit-secrets-short-form branch November 13, 2026 16:13
ptr727 added a commit that referenced this pull request Nov 13, 2026
… Rules (#4189)

## Summary

Promotes the backlog-burndown rounds and changes from other hub sessions
from `develop` to `main`.

- Hooks and the prose gate: #4132, #4134, #4136, #4145, #4152, #4184.
The Husky hook reads its path list once and diffs a merge against
`MERGE_HEAD`. Interrupts re-raise their signal, a Markdown code span
reads as quoted data, and the gate picks a commit's diff base and
recognizes a conflicted promotion's branch cut from `main`.
- Procedures and carried rules: #4133, #4139, #4141, #4149, #4166,
#4177, #4179, #4183, #4185. Resync, audit and check-this-repo procedure
gaps, code style and shell interrupt rules, review-loop gaps across four
skills, the context and delegation section of `AGENTS.md`, question
rules in governance, the promotion line in pull request bodies,
closing-keyword behavior on promotion, and the history-rewrite premise.
- Review and cleanup tooling: #4138, #4148, #4154, #4156, #4157, #4163,
#4164, #4168, #4174, #4180. Cleanliness reads, parked handoffs, the
backlog report's JSON output, exact inline script pins, trusted inputs,
env-file includes, the bounded review wait, side-reviewer matching, and
a Copilot billing-failure notice read as a refusal.
- Workflow and runbook contract: #4153, #4155, #4169, #4171, #4178,
#4182. The runtime-secrets check, a registry entry and spec references,
the Copilot runbook pointers, credential-free checkout steps, and the
deploy-key and runner wording.
- From other hub sessions: #4159 (a repository's own .NET line under a
fleet default), #4161 (the 1Password CLI as an optional host tool),
#4162 (Codex's Windows installer and one managed opencode copy). These
carry no promotion line.

#4182 carries no promotion line by design, and #4175 holds the split-out
part of #4057's scope. Both #1448 and #4175 stay open.

Fixes #1071
Fixes #1154
Fixes #1391
Fixes #1471
Fixes #1594
Fixes #1620
Fixes #1627
Fixes #1650
Fixes #1801
Fixes #2853
Fixes #3620
Fixes #3668
Fixes #3697
Fixes #3766
Fixes #3787
Fixes #3837
Fixes #3840
Fixes #3842
Fixes #3844
Fixes #3865
Fixes #3882
Fixes #3890
Fixes #3894
Fixes #3912
Fixes #3916
Fixes #3954
Fixes #4014
Fixes #4015
Fixes #4016
Fixes #4043
Fixes #4050
Fixes #4057
Fixes #4058
Fixes #4062
Fixes #4084
Fixes #4097
Fixes #4098
Fixes #4099
Fixes #4104
Fixes #4108
Fixes #4114
Fixes #4115
Fixes #4117
Fixes #4118
Fixes #4119
Fixes #4121
Fixes #4122
Fixes #4123
Fixes #4131
Fixes #4135
Fixes #4140
Fixes #4142
Fixes #4143
Fixes #4144
Fixes #4151

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants