Keep generated orientation briefs local without Git writeback
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a15374-f59f-7a31-86d2-d23b5d2ed181
This commit is contained in:
parent
eac38b76ca
commit
39b51a21a5
8 changed files with 23 additions and 68 deletions
|
|
@ -1,50 +0,0 @@
|
|||
<!-- custodian-brief: generated by fix-consistency — do not edit manually -->
|
||||
# Custodian Brief — state-hub
|
||||
|
||||
**Domain:** infotech
|
||||
**Last synced:** 2026-10-14 00:49 UTC
|
||||
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
|
||||
|
||||
## Active Workstreams
|
||||
|
||||
### Supply State Hub inputs that hub-core receipt tasks wait on
|
||||
Progress: 3/5 done | workplan_id: `0c68970e-295b-57fc-ac70-e472ee3a7bc4`
|
||||
|
||||
**Open tasks:**
|
||||
- ! A4 work/repo UI caller inventory and owner asks `e6ef3381`
|
||||
*(wait: Owner map delivered and switch-plan requests sent 2026-10-13 to hub-core (5e2f749b), activity-core (13cff5ff), repo-manager (0c49c989), sbom-nexus (63ce4ead) and policy-nexus (d5dda84d); waiting for their read smokes and reversible switch plans.)*
|
||||
- ! Named single reader and parity window `077797c8`
|
||||
*(wait: The first reader is chosen once hub-core implements the accepted feed contract (HUB-WP-0011-T01) and the feed is deployed. Per D3, choose a reader that does not rely on broadcast delivery stamps.)*
|
||||
|
||||
### Route human gates and expose actionable owner returns
|
||||
Progress: 3/5 done | workplan_id: `2c4e96a3-ca0d-5003-b759-880976600ecc`
|
||||
|
||||
**Open tasks:**
|
||||
- ! Integrate deduplicated owner wakeups with the supported runner `cd73e265`
|
||||
*(wait: Memo 2 plan-only and submit trials wait for a live owner return; C-25 found zero findings across 13 public repos on 2026-10-04)*
|
||||
- ! Prepare approved receiving promotion and assess graph freshness (P6) `ec0acd06`
|
||||
*(wait: Memo 3 apply trials need a read-only Forgejo token for the Activity Core worker; then memo 4 schedule and 48 h freshness evidence. 2026-10-14: CCR-2026-0034 in railiance-platform is the keycape operator reader (applied), not this token; no Forgejo-read CCR for the Activity Core worker found.)*
|
||||
|
||||
### State Hub retirement strangler and disposition execution
|
||||
Progress: 6/9 done | workplan_id: `ed077b62-7048-5752-bf65-f90471f45854`
|
||||
|
||||
**Open tasks:**
|
||||
- ! Execute move/replace slices `3a454438`
|
||||
*(wait: Founder authorized production writer changes on 2026-10-05 (913b924b). No route switches until hub-core, repo-manager, activity-core and ops-hub route-switch and rollback receipts exist. Hub-core receipts are HUB-WP-0011-T03 and HUB-WP-0006-T06, which wait on State Hub for parity cases, caller/alias mapping and a bounded switch window (a mutual wait). repo-manager, activity-core and ops-hub have no receipt workplan yet (requested 2026-10-13).)*
|
||||
- ! Retire legacy surfaces `f6cf8c01`
|
||||
*(wait: 2026-10-06 weekly review: zero retirement candidates. Three high-volume /workstreams reads need 60 quiet days (earliest 2026-10-20); two interfaces still have live callers.)*
|
||||
- ! Stabilization window and archive prep `9230c99b`
|
||||
*(wait: Needs T04 handoffs and T05 retirement first; legacy meter still has live callers. The primary stop follows the standing change rule (decision 2fd5849c, resolved 2026-10-11); no separate founder gate.)*
|
||||
|
||||
## Inbox Hygiene
|
||||
|
||||
**Stale unread:** 2 message(s) older than 3 day(s) — triage at session start.
|
||||
**Missing thread_id:** 2 unread message(s) lack supersession chains.
|
||||
|
||||
---
|
||||
## MCP Orientation (when available)
|
||||
|
||||
If the state-hub MCP server is reachable, call:
|
||||
`get_domain_summary("infotech")`
|
||||
This provides richer cross-domain context.
|
||||
If the MCP call fails, use this file as your orientation source.
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -45,3 +45,6 @@ kubectl
|
|||
Thumbs.db
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
# Local generated orientation; refreshed by State Hub.
|
||||
/.custodian-brief.md
|
||||
|
|
|
|||
3
SCOPE.md
3
SCOPE.md
|
|
@ -16,7 +16,8 @@ repository files remain authoritative for repository-owned work records.
|
|||
- repo registration (classification-driven) and consistency synchronization
|
||||
- read-model orientation brief rendering without Git operations (`make brief-generate` /
|
||||
`brief-check`, explicit repo path and slug); rejects unavailable or malformed reads
|
||||
and preserves existing briefs on failure. See `docs/brief-generation.md`.
|
||||
and preserves existing briefs on failure. Briefs are ignored local orientation;
|
||||
consistency refreshes no longer commit their snapshots. See `docs/brief-generation.md`.
|
||||
- repo classification spine (14 market domains, `.repo-classification.yaml`)
|
||||
- task-flow engine and flow definitions
|
||||
- SBOM, contribution, capability, demand-weighted suggestion backlog, TPSC, DoI,
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ an atomic snapshot; inspect output if concurrent work is changing the hub.
|
|||
Missing or malformed endpoint responses stop generation before writing. Symlink
|
||||
targets are refused. Preserve any existing local changes before refreshing.
|
||||
|
||||
Review and stage the brief alongside the substantive source change that needs it.
|
||||
The generated-only commit guard remains in force. This command does not install
|
||||
an automatic brief hook or change existing consistency writeback defaults.
|
||||
Briefs are local generated orientation, excluded by `/.custodian-brief.md` in
|
||||
`.gitignore`. Both this command and ordinary consistency refreshes leave them
|
||||
untracked and never stage or commit them. Existing tracked snapshots can be
|
||||
removed with `git rm --cached -- .custodian-brief.md` after preserving the local
|
||||
file; do not delete that local orientation. Other consistency writebacks retain
|
||||
their existing behavior. The generated-only commit guard remains in force.
|
||||
This command does not install a network-dependent pre-commit hook.
|
||||
|
|
|
|||
|
|
@ -3405,8 +3405,8 @@ def _strict_brief_get(api_base: str, path: str, params=None):
|
|||
|
||||
|
||||
def _write_custodian_brief(api_base: str, repo_slug: str, repo_path: str, *,
|
||||
commit: bool = True, strict: bool = False, check: bool = False) -> bool:
|
||||
"""Generate .custodian-brief.md at the repo root and git-commit if changed.
|
||||
strict: bool = False, check: bool = False) -> bool:
|
||||
"""Generate the local ignored .custodian-brief.md without Git operations.
|
||||
|
||||
The brief gives any agent — including subagents without MCP access and
|
||||
workers on remote machines — instant orientation without a live hub
|
||||
|
|
@ -3642,13 +3642,6 @@ def _write_custodian_brief(api_base: str, repo_slug: str, repo_path: str, *,
|
|||
raise ValueError("brief differs from current read model")
|
||||
brief_path.write_text(content, encoding="utf-8")
|
||||
|
||||
# Commit the brief so remote workers can pull it
|
||||
if commit:
|
||||
_git_commit_writeback(
|
||||
repo_path,
|
||||
brief_path,
|
||||
[f"update .custodian-brief.md for {repo_slug}"],
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ def main():
|
|||
if (args.repo_path / '.custodian-brief.md').is_symlink():
|
||||
raise ValueError('refuse redirected brief')
|
||||
changed = _write_custodian_brief(args.api_base, args.repo_slug, str(args.repo_path),
|
||||
commit=False, strict=True, check=args.check)
|
||||
strict=True, check=args.check)
|
||||
except (OSError, ValueError, KeyError, TypeError) as exc:
|
||||
parser.exit(1, f'Brief generation refused: {exc}\n')
|
||||
print(json.dumps({'repo': args.repo_slug, 'status': 'updated' if changed else 'current',
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@ def test_render_does_not_commit_and_timestamp_only_retry_is_unchanged(tmp_path,
|
|||
monkeypatch.setattr(owner, '_api_get', responses)
|
||||
commit = Mock(side_effect=AssertionError('Git operations forbidden'))
|
||||
monkeypatch.setattr(owner, '_git_commit_writeback', commit)
|
||||
assert owner._write_custodian_brief('unused', 'demo', str(tmp_path), commit=False, strict=True)
|
||||
assert owner._write_custodian_brief('unused', 'demo', str(tmp_path), strict=True)
|
||||
before = (tmp_path / '.custodian-brief.md').read_bytes()
|
||||
assert not owner._write_custodian_brief('unused', 'demo', str(tmp_path), commit=False, strict=True)
|
||||
assert not owner._write_custodian_brief('unused', 'demo', str(tmp_path), strict=True)
|
||||
assert (tmp_path / '.custodian-brief.md').read_bytes() == before
|
||||
commit.assert_not_called()
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ def test_partial_snapshot_preserves_existing_brief(tmp_path, monkeypatch, failed
|
|||
monkeypatch.setattr(owner, '_api_get', read)
|
||||
path = tmp_path / '.custodian-brief.md'; path.write_text('preserved')
|
||||
with pytest.raises(ValueError, match='unavailable or malformed'):
|
||||
owner._write_custodian_brief('unused', 'demo', str(tmp_path), commit=False, strict=True)
|
||||
owner._write_custodian_brief('unused', 'demo', str(tmp_path), strict=True)
|
||||
assert path.read_text() == 'preserved'
|
||||
|
||||
|
||||
|
|
@ -45,5 +45,5 @@ def test_check_has_no_write(tmp_path, monkeypatch):
|
|||
monkeypatch.setattr(owner, '_api_get', responses)
|
||||
path = tmp_path / '.custodian-brief.md'; path.write_text('preserved')
|
||||
with pytest.raises(ValueError, match='differs'):
|
||||
owner._write_custodian_brief('unused', 'demo', str(tmp_path), commit=False, strict=True, check=True)
|
||||
owner._write_custodian_brief('unused', 'demo', str(tmp_path), strict=True, check=True)
|
||||
assert path.read_text() == 'preserved'
|
||||
|
|
|
|||
|
|
@ -28,3 +28,7 @@ checks, document the read-model boundary in SCOPE. Supports CUST-WP-0079 provide
|
|||
adoption without generated-only guard bypass. Seventeen focused tests pass and
|
||||
Custodian live read-model check passes. Broader consistency validation recorded
|
||||
in the session progress receipt; no runtime deployment or scheduler activation.
|
||||
|
||||
Operator follow-up: keep generated briefs local and stop tracking snapshots.
|
||||
The owner renderer now never stages or commits briefs, including consistency
|
||||
refreshes. Repository ignores preserve local orientation without Git churn.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue