State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

State the purpose as agent enablement, not orchestration - #492

Merged
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement
Aug 1, 2026
Merged

State the purpose as agent enablement, not orchestration#492
ptr727 merged 2 commits into
developfrom
feature/purpose-agent-enablement

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Restates what this project is for. The tagline described the repo by its contents, governance and orchestration and workflow audit, which names the machinery without saying what the machinery is for. A reader learned what is in here without learning why any of it exists.

The framing

The purpose is agent enablement. An agent is fast and inconsistent, so a fleet built by one drifts a different way in every repository, and the drift stays invisible until something breaks where it matters. What this repo makes repeatable is the outcome: an agent stands a repository up, changes it, and releases it on its own, and lands in the same known-good shape every time.

The guardrails are what make granting that autonomy sound rather than reckless, and they are stated as enabling rather than restraining. A rule earns its place by removing a decision an agent would otherwise make differently every time, or by making a failure loud that would otherwise pass green. Write safety bounds what an agent can reach outside the project in front of it, the review loop closes before anything merges, and the audit proves the result instead of accepting the agent's report of it. Autonomy extends exactly as far as the verification reaches.

Nothing here is finished. Every rule traces to a specific failure, nearly all of them observed in this fleet rather than imagined, and a procedure that lets a new one through is corrected as part of the work that found it.

Where it lands

The same sentence opens three files, so all three move together:

FileWhat changes
README.mdthe tagline, the release-note summary bullet, and the opening of "What This Repo Is" (three paragraphs before the existing file list, which is unchanged)
HISTORY.mdthe tagline
AGENTS.mdthe opening description an agent reads first

Two follow-ups this creates

  1. The GitHub About description is derived from the README tagline and currently matches the old one exactly. It needs updating after this merges. That is a live repo-settings write, so it waits for the merge and for your say-so rather than going out with the branch.
  2. README.md carries 16 warn-only prose findings (9 dash, 7 semicolon), none of them on the lines this PR touches. The standing rule corrects existing prose as a file is next edited, so they are owed. They are deliberately not in this diff, because a 16-line sweep would bury the wording you are meant to be reading. Offered as an immediate follow-up PR.

Verification

  • prose_lint blocking set clean tree-wide, and the new prose carries no dash or semicolon finding of its own.
  • cspell clean over README.md and HISTORY.md, the gated scope.
  • markdownlint-cli2 clean over all three files. Table of contents unaffected, since no heading changed.
  • CRLF-only by byte scan on all three.

🤖 Generated with Claude Code

The tagline described the repo by its contents: governance, orchestration and
workflow audit. That names the machinery and not what the machinery is for,
so a reader learns what is in here without learning why any of it exists.
The purpose is agent enablement. An agent is fast and inconsistent, so a fleet
built by one drifts a different way in every repository, and the drift stays
invisible until something breaks where it matters. What this repo makes
repeatable is the outcome, so an agent stands a repository up, changes it and
releases it on its own, and lands in the same known-good shape every time.
Framing the rules as guardrails rather than governance also states their
direction correctly. They exist to widen what an agent may do unattended, by
removing a decision it would otherwise make differently every time or by
making a failure loud that would otherwise pass green. Write safety, the
review loop and the audit are what make the autonomy safe to grant, and
autonomy extends exactly as far as the verification reaches.
The third paragraph records that none of it is finished. Every rule traces to
a specific failure, nearly all observed in this fleet rather than imagined,
and a procedure that lets a new one through is corrected as part of the work
that found it.
The same sentence opens README.md, HISTORY.md and AGENTS.md, so all three
move together. The GitHub About description is derived from the README line
and is updated after this merges.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:40

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

Pull request overview

This PR updates the repository’s “tagline” framing across the main entry-point docs to clearly state that ProjectTemplate’s purpose is agent enablement (guardrails + verification that make autonomous agent work repeatable and safe), rather than describing the repo primarily by its internal machinery.

Changes:

  • Replaces the old “governance / orchestration / audit hub” tagline with an “agent enablement” purpose statement in README.md and HISTORY.md.
  • Expands the opening “What This Repo Is” section in README.md to explain the motivation (repeatable outcomes, guardrails, verification).
  • Updates AGENTS.md’s opening description to align with the new purpose framing for agents reading it first.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
README.mdReframes the repo’s purpose as agent enablement, updates the release summary bullet, and expands “What This Repo Is” intro prose.
HISTORY.mdUpdates the top-level tagline to match the new purpose framing.
AGENTS.mdUpdates the opening repo description to describe ProjectTemplate as the agent-enablement/enablement hub.

Comment threadAGENTS.md Outdated
spec/readme-structure.md item 1 caps the one-line description at 100
characters, link-free and single-sentence, because it doubles as the GitHub
About description and, for a repo publishing an image, the Docker Hub short
description, where the cap is tightest. The audit checks the length. The
sentence this branch introduced ran to 167 and would have failed its own
readme-structure dimension.
The short form keeps what has to survive compression, agent enablement and
autonomy at repeatable quality inside guardrails, and drops the harm clause,
which the second paragraph of What This Repo Is states at length. HISTORY.md
carries the identical sentence, since the audit checks the two match.
AGENTS.md now opens on the same noun phrase rather than a hyphenated
adjective, so the tagline reads as one term across the three files.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 1, 2026 03:43

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

Pull request overview

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

@ptr727
ptr727 merged commit 981d92f into developAug 1, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/purpose-agent-enablement branch August 1, 2026 04:51
ptr727 added a commit that referenced this pull request Aug 1, 2026
Moves the running backlog out of `README.md` into `TODO.md`, and makes
that placement the fleet standard rather than a hub preference.
## Why the README was the wrong home
`spec/readme-structure.md` lists twelve README sections and **TODO is
not one of them**, so the hub's own README deviated from the structure
its audit checks every fleet README against. Beyond conformance, open
work does not belong on the adoption surface a reader lands on, and it
changes on a different cadence from everything around it.
## What makes it a standard
- **`spec/readme-structure.md` gains a `TODO.md` section**, stating that
a README carries no backlog section and that the backlog lives in a root
`TODO.md` with a defined shape. This is the file the `readme-structure`
audit dimension reads, so the rule lands where the check already looks.
- **`STANDUP.md` step 2 lists it as the fourth topical destination**,
alongside `CODESTYLE.md`, `ARCHITECTURE.md`, and `OPERATIONS.md`.
**It is a declared destination, not a required file**, the same footing
as `ARCHITECTURE.md`, so a repo with no backlog carries no file rather
than an empty one. Say the word if you would rather it be required by a
selector, which would mean a `spec/files.json` entry and an empty
`TODO.md` in every repo.
## Fleet impact is small, and measured
Surveyed live across twelve repos: **no repo has a `TODO.md`**, and
exactly **three** carry a README `## TODO` section, all of them
operational config repos (HomeAssistant-Config, Vantage-Config,
HomeAutomation-Config). The other nine have neither, so they are already
conformant. Those three are a follow-up, not this PR.
## Two things fixed while in these files
1. **`spec/readme-structure.md` instructed authors to use the
construction `GOVERNANCE.md` bans.** Its Style list said "ASCII only (no
em-dash; use a spaced hyphen)", against `GOVERNANCE.md` "No spaced
hyphen joining or interrupting a sentence", so an agent following the
more specific file produced prose the prose gate then flagged. The
bullet now defers to the tiered character rule, and the file's other 8
`dash` and `semicolon` findings are fixed in the same pass. This closes
finding 1 of #489.
2. **Three real backlog items were added while moving**, rather than the
list being copied unchanged: the `.editorconfig` / `.gitattributes` /
`.gitignore` comment cleanup (44 findings), the
`repo-config/configure.sh` sweep (54 findings, and that file is carried
`verbatim` so downstream cannot fix them locally, which is finding 6 of
#489), and the README's own 13 prose findings.
## The README sweep is deferred, deliberately
`README.md` carries 13 `dash` and `semicolon` findings, none on lines
this PR touches. Two other changes to that file are in flight (#492), so
a third overlapping edit would conflict with both for no gain. It is
recorded in `TODO.md` rather than left to memory, which is what that
file now exists for.
## Verification
- Fleet survey run live against the GitHub API, so the three-repo number
is measured rather than recalled.
- `prose_lint` blocking set clean tree-wide. `TODO.md`, `STANDUP.md`,
and `spec/readme-structure.md` clean on the warn set too.
- markdownlint clean over all four files, including the removed ToC
entry and the link fragments.
- No orphaned reference definitions: `[reports]` and `[repos]` are still
used elsewhere in the README.
- cspell clean, editorconfig-checker clean, all files CRLF-only by byte
scan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 1, 2026
…to main (#498)
Promotes eight commits from `develop`. Every one traces to a defect
found in use rather than to a planned change, and five came from
downstream agents reporting what the procedure did not cover.
## What lands
| Commit | Change |
| --- | --- |
| `a0f6f24` (#487) | `docs/content-import.md`, the three capture-pass
findings from the Blog migration: an export is not a media capture, a
sitemap is not the URL contract, and an HTTP fetch is not the original |
| `8bdfa22` (#494) | The write-guard scopes by **owner** rather than
exact origin, with `GH_WRITE_GUARD_ALLOW` for a different owner. Four
target-flag spellings that silently bypassed rule 3 are closed |
| `981d92f` (#492) | The purpose is restated as agent enablement, in
`README.md`, `HISTORY.md` and `AGENTS.md` |
| `275705b` (#493) | `TODO.md` becomes the fleet backlog destination,
and `spec/readme-structure.md` stops mandating the construction
`GOVERNANCE.md` bans |
| `b6ab6db` (#491) | `STANDUP.md` step 0A names the maintainer-only
prerequisites, and step 4 asserts the remote |
| `89e3868` (#488) | The `version.json` floor is chosen at standup
rather than inherited |
| `eed2e00` (#495) | `README.md` gains "What It Achieves", the
objectives and the fidelity ladder |
| `f6dc5e6` (#497) | `CODESTYLE.md` stops claiming CI runs the same
checks as the clean-compile |
## Provenance
Five of the eight answer issues filed by downstream agents: #456 (Blog
intake), #489 and #490 (the Blog carry), and #496 (Financial-Modeling).
That loop is the one "What It Achieves" now describes, and this
promotion is it closing.
## Divergence, checked rather than assumed
`main...develop` reports `8 ahead, 102 behind, diverged`. **The 102 are
topology, not content.** They are 79 promotion merge commits, which are
main-only by construction because a promotion is a two-parent merge,
plus 23 `Update codegen files` bot commits from this repo's pre-2.0 life
as a .NET sample template. `git diff --name-status origin/develop
origin/main` returns exactly the 12 files these 8 commits touch, so
there is **no main-only content** to reconcile.
## Verification on the merged `develop`
Every gate re-run after the last merge, not inherited from the
individual PRs:
- `prose_lint.py . --check charset --check dupword --check spelling`
clean tree-wide.
- `repo_gate.py` clean (`eol`, `sha-pin`).
- `spec/validate.py` clean, 21 cataloged repos classify.
- `gh-write-guard.py --selftest` passes, including the nine new
repository-scope cases.
- `python3 -m unittest discover -s scripts`, 180 tests pass.
- The `README.md` objectives list verified as one continuous list of 8
bullets with the fidelity table nested, since an unindented table split
it in review.
## Merge mechanics
This is a promotion, so it merges as a **merge commit** with two
parents, never a squash. Its head **is** `develop`, so `--delete-branch`
must not be used.
🤖 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