Skip to content

Promote develop to main: hub resync at 0e84805 - #51

Merged
ptr727 merged 3 commits into
mainfrom
develop
Aug 15, 2026
Merged

Promote develop to main: hub resync at 0e84805#51
ptr727 merged 3 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Promotes develop to main, carrying #50 (resync of the carried instruction set and config against the ptr727/ProjectTemplate hub at 0e84805).

Merge-commit promotion per the branching model, develop stays.

🤖 Generated with Claude Code

ptr727and others added 2 commits August 13, 2026 18:19
* Resync Carried Instruction Set, Config, and README Against the Hub
Phase 8 (fleet-wide Skills rollout) batch 2 of ptr727/ProjectTemplate's
hub-docs-to-skills-conversion project.
Re-vendors 13 stale/absent verbatim AGENTS.md/GOVERNANCE.md sections
against hub main, plus the whole-file config carries:
.markdownlint-cli2.jsonc, repo-config/develop.json, repo-config/
main.json, repo-config/README.md.
Re-vendors the github-release job in build-release-task.yml (declared
verbatimJobs contract): action SHA pin bumps and the current
one-sentence-per-line comment style, keeping this repo's own
target-specific needs: list (console/docker only, no nuget/pypi) per
WORKFLOW.md's per-target subsetting rule.
Adds host-tools.json (genuinely absent, an empty declaration since this
repo needs no host tool beyond the fleet baseline). Retires the local
repo-config/configure.sh copy per spec/divergences.json's 'retire'
disposition (hub-hosted, not carried), fixing its two remaining
references in AUDIT.md and repo-config/README.md in the same pass.
Fixes AUDIT.md's ruleset-comparison snippet to stop diffing
bypass_actors, the same gap caught on Financial-Modeling#111 in this
batch, applied proactively here.
README: adds the required 3rd Party Tools section (19 dependencies and
CI/dev tools, alphabetized, matched to the shared catalog where one
exists); renames commit-link to commits-link and docker-link to
docker-hub-link (shared destination names); renames history-link and
license-link to bare history/license (in-repo paths carry no suffix);
renames the Internal reference group to Distribution and sorts
External by reference name, per spec/readme-structure.md.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Reorder README Reference Groups to Match the Declared Order
Self-caught before review: the reference-definition groups landed as
Shields, Repo, Distribution, External. spec/readme-structure.md
declares Sections, Shields, Distribution, Repo, External - Distribution
before Repo. Swapped.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Round 1 Review: Explicit configure.sh Path, Consistent checkout Pin
Three real findings:
- repo-config/README.md and AUDIT.md's configure.sh examples read as
runnable without a path or a hub checkout in view. Made every example
invocation explicit (repo-config/configure.sh), matching how it is
actually run.
- build-release-task.yml's re-vendored github-release job carried the
hub catalog snippet's actions/checkout@v7.0.0 pin, while this repo's
other workflows are already on the Dependabot-bumped v7.0.1. Aligned
to the SHA already verified elsewhere in this repo, not a new pin.
Also fixed three pre-existing prose_lint semicolon violations on lines
this PR's own diff touches (AUDIT.md), since CI's diff-scoped prose
gate lints any line a commit changes, not just the ones a fix
targets.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Round 2 Review (suppressed): One More Unqualified configure.sh Mention
The bypass_actors bullet's own configure.sh mention was missed in the
round-1 sweep. repo-config/configure.sh, matching every other mention
in this file now.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Round 3 Review (suppressed): Revert an Accidental Action Downgrade
The github-release job re-vendor carried the hub catalog snippet's
softprops/action-gh-release@v3.0.1 pin over this repo's own already-
Dependabot-bumped v3.0.2, a real downgrade. Restored v3.0.2 (the SHA
on develop, not re-typed). Diffed every uses: line in the job against
develop afterward and confirmed no other pin was silently changed -
this is the same class of gap the checkout pin fix caught in round 1,
now swept for the whole job rather than the one instance flagged.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Round 4 Review: Qualify configure.sh as the Hub's in the bypass_actors Bullet
The bypass_actors bullet's configure.sh mention already carried the
repo-config/ path, but read as a local script since the bullet itself
never says hub, unlike the bullet right after it. Reads 'the hub's
repo-config/configure.sh' now.
xUnit.Net's casing (README.md:928, suppressed) is not changed:
spec/third-party-tools.json's own catalog entry names it 'xUnit.Net',
and a shared tool is named identically everywhere it appears per
spec/readme-structure.md 3rd Party Tools - a local casing fix would
diverge from the catalog rather than fix a typo.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* Resync the Carried Instruction Set and Config Against Hub 0e84805
Re-vendors the 10 verbatim AGENTS.md/GOVERNANCE.md sections the audit
reported stale against hub main (Fleet Bootstrap, Where the Rules Live,
Branching Model, Communicating with the User, Documentation Style
Conventions, Durable Knowledge and Self-Improvement, Git and Commit
Rules, Repository Boundaries and Write Safety, Verification Discipline,
Workflow YAML Conventions). The distinctive-phrase probe found no local
addition in any of them: every non-current line traced to a past hub
revision.
Reconciles the intent-carried files against the hub's history since the
copies last synced, keeping each repo-specific adaptation:
- CODESTYLE.md takes the hub's pointer-ized shape (language sections
now summarize and route to the dotnet-codestyle, python-codestyle,
and shell rules) and keeps this repo's Full Post-Change Set as its
own .NET subsection. GOVERNANCE.md Devcontainer re-points at the
.NET section and .vscode/tasks.json, since Tooling and Editor is
gone.
- WORKFLOW.md takes the hub's diagram labels, S12/S13 rows, and the
operational-model allowance text, keeping the repo's D1 adaptations.
- .github/copilot-instructions.md takes the current runbook, including
the Disproved Claims section's shape and rules with the hub's own
entries dropped, since each names a hub file this repo does not hold.
- .editorconfig and .gitattributes take the current pin set with the
hub-only Python and catalog pins left out, and mark the pins that
match no file here as forward-declared, which clears a pre-existing
repo_gate eol-coverage failure.
- spec/secrets.json and AUDIT.md claim CODECOV_TOKEN in both stores,
matching the hub and the live configuration, and AUDIT.md's ruleset
snippet adopts the whole-content sort, pagination, and exactly-one
check the hub's audit.py uses.
- cspell.json gains the hub's new words. codecov.yml takes the hub
snippet's header comment.
Audited against this branch with the hub's audit.py at 0e84805 before
push, and the local gates (markdownlint, cspell, actionlint, prose_lint
on the diff, repo_gate) report clean.
* Route the unrecognized-shape issue to the hub without naming it
The audit's carried-content check flags a template mention outside a
verbatim section, and AGENTS.md "Fleet Bootstrap" already names the
destination, so the runbook points there instead.
* Point the disproof rule at PR Review Etiquette, where it now lives
The Every Finding Ends in an Action heading left GOVERNANCE.md when the
review-loop contract was packaged as the pr-review-conduct Skill, so the
link resolves to the section that routes there.
CopilotAI lite review requested due to automatic review settings August 15, 2026 14:52
@codecov

codecovBot commented Aug 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.37%. Comparing base (83f5101) to head (ab23034).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@## main #51 +/- ##
=======================================
Coverage 43.37% 43.37% =======================================
Files 28 28 Lines 3896 3896 Branches 306 306 =======================================
Hits 1690 1690 Misses 2154 2154 Partials 52 52 

☔ 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.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Promotes develop to main, carrying the hub resync work (per PR #50) so the repository’s carried governance/config/instructions reflect the hub state at 0e84805.

Changes:

  • Updates operational/release workflow documentation and audit guidance, including ruleset normalization and CI trigger explanation.
  • Aligns secrets/spec and ruleset payloads with the hub model (e.g., Dependabot secret store coverage; unmanaged bypass_actors).
  • Refreshes repo documentation and “carried content” runbooks (README link cleanup + third-party tooling list; Copilot runbook updates; host tool declaration).

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
WORKFLOW.mdClarifies operational PR vs direct-push paths and labels key workflow contract nodes (D1/D3/D4/D5/D6).
spec/secrets.jsonAdds dependabot store for Codecov token to reflect Dependabot-triggered workflow secret visibility.
repo-config/README.mdUpdates guidance to treat configure.sh as hub-hosted tooling and documents unmanaged bypass_actors.
repo-config/main.jsonRemoves managed bypass_actors from the expected ruleset payload.
repo-config/develop.jsonRemoves managed bypass_actors from the expected ruleset payload.
repo-config/configure.shRemoves locally-carried script (now documented as hub-hosted).
README.mdFixes reference links and adds a “3rd Party Tools” dependency/action inventory section.
host-tools.jsonAdds repo-scoped host tool declaration (empty list; tighten-only layering note).
cspell.jsonExpands dictionary with hub-synced terms.
CODESTYLE.mdRefactors detailed prose into hub-skill pointers + concise summaries; preserves repo-specific .NET “post-change set”.
codecov.ymlClarifies advisory coverage semantics and keeps benchmarks excluded from coverage.
AUDIT.mdUpdates ruleset diff normalization and secrets verification guidance (including Dependabot store).
AGENTS.mdRe-vendors hub “Fleet Bootstrap” and expands routing/skill packaging references.
.markdownlint-cli2.jsoncMinor comment wording updates (proper-noun “Markdown”).
.github/workflows/build-release-task.ymlComment-only clarifications for release asset download and artifact cleanup steps.
.github/copilot-instructions.mdUpdates carried-content guidance and expands Copilot review runbook (refusal/coverage/suppressed-findings shapes, etc.).
.gitattributesAdds forward-declared EOL pins and clarifies rationale for LF-pinned tooling files.
.editorconfigAdds LF pin for composite action metadata and forward-declares uv.lock LF pin.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

ptr727 added a commit to ptr727/ProjectTemplate that referenced this pull request Aug 15, 2026
Refreshes `reports/photocleaner/audit.md` after the resync driven from
hub `0e84805`, per RESYNC.md section 6 ("done means measured").
- `main` (`c457ff3`) still measures as the pre-resync state (43
findings, run stamp `audit run 2026-08-15T14:28:27Z | hub 0e84805`),
reported as such rather than reading `develop` as ground truth.
- `develop` (`e8b7a81`, after ptr727/PhotoCleaner#49 and
ptr727/PhotoCleaner#50) reports only the two `investigate`-dispositioned
hub-only files (`audit run 2026-08-15T14:58:12Z | hub d54862a | branch
override develop`).
- The `develop -> main` promotion ptr727/PhotoCleaner#51 is open and
blocked on the prose gate's `dead-path` rule flagging verbatim mentions
of the retired `repo-config/configure.sh`, filed as #721. The second hub
finding from the pass, the dead `every-finding-ends-in-an-action` anchor
in `.github/copilot-instructions.md`, is #722.
- The registry `driftNotes` stand: both still describe reality (publish
shape, private-for-now).
Report lints clean (markdownlint, prose_lint), and `spec/validate.py`
passes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
ptr727 added a commit to ptr727/ProjectTemplate that referenced this pull request Aug 15, 2026
Closes#721
A repository that retires its copy of a hub-hosted file, per the
`retire` disposition in `spec/divergences.json`, keeps naming the hub's
copy in its carried docs. That is what `GOVERNANCE.md` "Hub-Hosted
Tooling" requires of carried text naming a tool ("a pointer that
resolves nowhere teaches the reader that a pointer in carried text is
decorative"), so rewording is the wrong remedy. But the tree no longer
holds the file and git once tracked it, which is exactly the signature
`dead-path` keys on, so every such mention is reported.
The rule's own exemption reads the scanning tree's `spec/files.json`,
which no repository carries, so downstream the exemption set is empty
and the class cannot be recognized at all. It surfaces at the `develop
-> main` promotion, whose diff base brings the whole retirement into
scope, leaving a maintainer's ruleset bypass as the only local remedy
for a linter false positive. Observed on ptr727/PhotoCleaner#51, and
PlexCleaner carries the same `GOVERNANCE.md:29` mention.
This is option 1 from the issue. Option 2 (reword the verbatim units to
name no path) is the one `RESYNC.md` section 4 warns against, since a
layout sentence that names no path is the blind spot the whole
`dead-path` rule exists to narrow.
- `HUB_HOSTED` is a literal in `prose_lint.py`, because the prose-gate
action fetches that one file with no hub tree beside it to read the
ledger from.
- A test asserts the literal equals the ledger's `retire` dispositions,
so a new retirement cannot land on one side only.
- A second test builds a repository that tracked and deleted
`repo-config/configure.sh` and asserts the mention is clean.
- The two exemption sets are now compared as posix paths, which is the
form the manifest and the ledger hold.
`docs/fleet-map.md` G4 records the second exemption and why it cannot be
derived downstream.
Verified: 246 tests in `test_prose_lint.py` pass, every other
`scripts/tests` module passes, `build_dist.py --check` is current, ruff
format and check are clean, and the whole-tree prose gate,
`repo_gate.py`, and `spec/validate.py` all pass.
Takes the two reviewer-set bullets the hub added (union: false replaces
the set, and gh pr view omits a Bot reviewer), and aligns the two
sentences #50 had already reworded to the canonical text that hub #730
landed for #722, so the shared prefix matches byte for byte.
CopilotAI review requested due to automatic review settings August 15, 2026 18:34

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 18 out of 19 changed files in this pull request and generated no new comments.

Suppressed comments (1)

WORKFLOW.md:112

  • In the "Fast PR Feedback" Mermaid diagram, the validation job node (val) is not connected to the PR trigger, which makes the diagram imply validation is independent of PRs. Adding an explicit pr --> val edge would align the diagram with the surrounding text (“Input: any PR”).
flowchart TD
pr[pull request] --> ch[changes paths-filter]
ch -->|target changed| sb[smoke-build changed targets]
ch -->|workflow-only or docs| skip[smoke-build skipped]
val[validation job] --> agg["Check pull request workflow status job (D1)"]

@ptr727

Copy link
Copy Markdown
OwnerAuthor

Answering the suppressed finding on WORKFLOW.md:112 (the Fast PR Feedback Mermaid diagram lacking a pr --> val edge): declined here. That diagram is hub-carried content from ptr727/ProjectTemplate (WORKFLOW.md is an intent carry, and this repo's D1 text already states that validation runs on every PR), so a diagram edge belongs in the hub canonical rather than a per-repo divergence. Not filing a hub issue for it, since the diagram is a sketch beside a contract that already says it in words.

@ptr727
ptr727 merged commit f56178a into mainAug 15, 2026
16 checks passed
ptr727 added a commit to ptr727/ProjectTemplate that referenced this pull request Aug 15, 2026
…nc (#739)
Follow-up to #723 after ptr727/PhotoCleaner#51 promoted `develop` to
`main` (`f56178a`), carrying ptr727/PhotoCleaner#50 and
ptr727/PhotoCleaner#52.
`spec/audit.py PhotoCleaner` at hub `b09078e` reports **clean** at
`main` (`audit run 2026-08-15T18:43:20Z | hub b09078e`) and at
`develop`, including the two hub-only workflow findings that #736
settled. The report moves to **operational**: `readme-structure` and
`agent-instruction-set` to pass, no defects, no drift, nothing in
flight. It records the one-round `dead-path` block on the promotion
(#721, fixed by #731, cleared by a re-run since the gate reads rules
from hub `develop`) and closes both escalations (#721, #722). The
registry entry is unchanged: `status` stays `cataloged` (the schema's
only non-backlog value) and both `driftNotes` still describe reality
(publish shape, private-for-now) and assert no outstanding work.
Report lints clean (markdownlint, prose_lint), and `spec/validate.py`
passes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto 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

@ptr727