refactor(framework): thin-core prompt diet — cut injected contract ~53% #529
@@ -41,6 +41,7 @@ Active workstream is **W1 — Federation v1**. Workers should:
|
|||||||
3. Follow per-task agent + tier guidance from the workstream manifest
|
3. Follow per-task agent + tier guidance from the workstream manifest
|
||||||
|
|
||||||
## Thin-core prompt diet (#528) — feat/contract-thin-core
|
## Thin-core prompt diet (#528) — feat/contract-thin-core
|
||||||
|
|
||||||
- Status: PR open, awaiting maintainer merge ratification (fleet-governing change).
|
- Status: PR open, awaiting maintainer merge ratification (fleet-governing change).
|
||||||
- Cut always-injected contract AGENTS+TOOLS+RUNTIME 8,827→4,122 tok (−53%); all 12 hard gates intact.
|
- Cut always-injected contract AGENTS+TOOLS+RUNTIME 8,827→4,122 tok (−53%); all 12 hard gates intact.
|
||||||
- Validation: deterministic gate-checklist PASS; headless A/B thin 7/9 vs monolith 5/9. Detail: scratchpads/contract-thin-core.md.
|
- Validation: deterministic gate-checklist PASS; headless A/B thin 7/9 vs monolith 5/9. Detail: scratchpads/contract-thin-core.md.
|
||||||
|
|||||||
@@ -78,25 +78,25 @@ Only interrupt the human when one of these is true:
|
|||||||
|
|
||||||
## Conditional Guide Loading (role/task-driven — load only what the task needs)
|
## Conditional Guide Loading (role/task-driven — load only what the task needs)
|
||||||
|
|
||||||
| Task | Guide |
|
| Task | Guide |
|
||||||
|---|---|
|
| -------------------------------------------------- | ---------------------------------- |
|
||||||
| Project bootstrap | `guides/BOOTSTRAP.md` |
|
| Project bootstrap | `guides/BOOTSTRAP.md` |
|
||||||
| PRD creation / requirements | `guides/PRD.md` |
|
| PRD creation / requirements | `guides/PRD.md` |
|
||||||
| Orchestration flow | `guides/ORCHESTRATOR.md` |
|
| Orchestration flow | `guides/ORCHESTRATOR.md` |
|
||||||
| Mission lifecycle / multi-session orchestration | `guides/ORCHESTRATOR-PROTOCOL.md` |
|
| Mission lifecycle / multi-session orchestration | `guides/ORCHESTRATOR-PROTOCOL.md` |
|
||||||
| Orchestrator estimation heuristics | `guides/ORCHESTRATOR-LEARNINGS.md` |
|
| Orchestrator estimation heuristics | `guides/ORCHESTRATOR-LEARNINGS.md` |
|
||||||
| Frontend changes | `guides/FRONTEND.md` |
|
| Frontend changes | `guides/FRONTEND.md` |
|
||||||
| Backend/API changes | `guides/BACKEND.md` |
|
| Backend/API changes | `guides/BACKEND.md` |
|
||||||
| Auth/authorization | `guides/AUTHENTICATION.md` |
|
| Auth/authorization | `guides/AUTHENTICATION.md` |
|
||||||
| CI/CD changes | `guides/CI-CD-PIPELINES.md` |
|
| CI/CD changes | `guides/CI-CD-PIPELINES.md` |
|
||||||
| Infrastructure/DevOps/deployment | `guides/INFRASTRUCTURE.md` |
|
| Infrastructure/DevOps/deployment | `guides/INFRASTRUCTURE.md` |
|
||||||
| Code review work | `guides/CODE-REVIEW.md` |
|
| Code review work | `guides/CODE-REVIEW.md` |
|
||||||
| TypeScript strict typing | `guides/TYPESCRIPT.md` |
|
| TypeScript strict typing | `guides/TYPESCRIPT.md` |
|
||||||
| QA / test strategy | `guides/QA-TESTING.md` |
|
| QA / test strategy | `guides/QA-TESTING.md` |
|
||||||
| Documentation (any code/API/auth/infra change) | `guides/DOCUMENTATION.md` |
|
| Documentation (any code/API/auth/infra change) | `guides/DOCUMENTATION.md` |
|
||||||
| Secrets / vault usage | `guides/VAULT-SECRETS.md` |
|
| Secrets / vault usage | `guides/VAULT-SECRETS.md` |
|
||||||
| Tool/credential reference (service CLIs, wrappers) | `guides/TOOLS-REFERENCE.md` |
|
| Tool/credential reference (service CLIs, wrappers) | `guides/TOOLS-REFERENCE.md` |
|
||||||
| Memory protocol (OpenBrain capture/recall) | `guides/MEMORY.md` |
|
| Memory protocol (OpenBrain capture/recall) | `guides/MEMORY.md` |
|
||||||
|
|
||||||
## Subagent Model Selection (Cost — Hard Rule)
|
## Subagent Model Selection (Cost — Hard Rule)
|
||||||
|
|
||||||
|
|||||||
@@ -7,19 +7,19 @@ Project-specific tooling belongs in the project's `AGENTS.md`, not here.
|
|||||||
|
|
||||||
## Suites (use wrappers first)
|
## Suites (use wrappers first)
|
||||||
|
|
||||||
| Suite | Path | Purpose |
|
| Suite | Path | Purpose |
|
||||||
|---|---|---|
|
| ---------- | ------------------------------------------------ | ------------------------------------------------------------------------ |
|
||||||
| git | `tools/git/*.sh` | issues, PRs, milestones, CI queue guard (platform-auto-detected) |
|
| git | `tools/git/*.sh` | issues, PRs, milestones, CI queue guard (platform-auto-detected) |
|
||||||
| woodpecker | `tools/woodpecker/*.sh` | CI pipelines (`-a mosaic`\|`usc`; match git remote host) |
|
| woodpecker | `tools/woodpecker/*.sh` | CI pipelines (`-a mosaic`\|`usc`; match git remote host) |
|
||||||
| portainer | `tools/portainer/*.sh` | Docker Swarm stacks (status/redeploy/list) |
|
| portainer | `tools/portainer/*.sh` | Docker Swarm stacks (status/redeploy/list) |
|
||||||
| coolify | `tools/coolify/*.sh` | **DEPRECATED** — superseded by Portainer; do not use for new deployments |
|
| coolify | `tools/coolify/*.sh` | **DEPRECATED** — superseded by Portainer; do not use for new deployments |
|
||||||
| authentik | `tools/authentik/*.sh` | identity (users/groups/apps/flows) |
|
| authentik | `tools/authentik/*.sh` | identity (users/groups/apps/flows) |
|
||||||
| cloudflare | `tools/cloudflare/*.sh` | DNS (zones/records; `-a` instance) |
|
| cloudflare | `tools/cloudflare/*.sh` | DNS (zones/records; `-a` instance) |
|
||||||
| glpi | `tools/glpi/*.sh` | IT tickets/computers/users |
|
| glpi | `tools/glpi/*.sh` | IT tickets/computers/users |
|
||||||
| health | `tools/health/stack-health.sh` | service health checks |
|
| health | `tools/health/stack-health.sh` | service health checks |
|
||||||
| codex | `tools/codex/*.sh` | code/security review (`--uncommitted`) |
|
| codex | `tools/codex/*.sh` | code/security review (`--uncommitted`) |
|
||||||
| openbrain | `tools/openbrain/*`, `tools/openbrain_client.py` | semantic memory (see below) |
|
| openbrain | `tools/openbrain/*`, `tools/openbrain_client.py` | semantic memory (see below) |
|
||||||
| excalidraw | MCP `mcp__excalidraw__*` | diagram export/generation |
|
| excalidraw | MCP `mcp__excalidraw__*` | diagram export/generation |
|
||||||
|
|
||||||
Git wrappers are MANDATORY-first for issue/PR/milestone ops (see AGENTS.md hard gates 6–8).
|
Git wrappers are MANDATORY-first for issue/PR/milestone ops (see AGENTS.md hard gates 6–8).
|
||||||
Queue guard before push/merge: `tools/git/ci-queue-wait.sh --purpose push|merge`.
|
Queue guard before push/merge: `tools/git/ci-queue-wait.sh --purpose push|merge`.
|
||||||
@@ -45,10 +45,10 @@ cross-project patterns). Violating this creates duplicate, divergent data.
|
|||||||
|
|
||||||
## Git Providers
|
## Git Providers
|
||||||
|
|
||||||
| Host | Instance | CI |
|
| Host | Instance | CI |
|
||||||
|---|---|---|
|
| ------------------- | ---------------- | -------------------------------- |
|
||||||
| git.mosaicstack.dev | mosaic (default) | ci.mosaicstack.dev (`-a mosaic`) |
|
| git.mosaicstack.dev | mosaic (default) | ci.mosaicstack.dev (`-a mosaic`) |
|
||||||
| git.uscllc.com | usc | ci.uscllc.com (`-a usc`) |
|
| git.uscllc.com | usc | ci.uscllc.com (`-a usc`) |
|
||||||
|
|
||||||
Match Woodpecker `-a` and credential instance to the target repo's git remote host.
|
Match Woodpecker `-a` and credential instance to the target repo's git remote host.
|
||||||
|
|
||||||
|
|||||||
@@ -3,27 +3,33 @@
|
|||||||
**Branch:** `feat/contract-thin-core` · **Issue:** #528 · **Mode:** Delivery
|
**Branch:** `feat/contract-thin-core` · **Issue:** #528 · **Mode:** Delivery
|
||||||
|
|
||||||
## Objective
|
## Objective
|
||||||
|
|
||||||
Cut the always-injected contract (`defaults/AGENTS.md` + `defaults/TOOLS.md` + `runtime/claude/RUNTIME.md`, inlined every turn by the launcher) without losing any hard gate. Restore the original "thin core + on-demand guides" intent.
|
Cut the always-injected contract (`defaults/AGENTS.md` + `defaults/TOOLS.md` + `runtime/claude/RUNTIME.md`, inlined every turn by the launcher) without losing any hard gate. Restore the original "thin core + on-demand guides" intent.
|
||||||
|
|
||||||
## Change
|
## Change
|
||||||
|
|
||||||
- `defaults/AGENTS.md` → thin core: 12 hard gates verbatim, 37 operating rules condensed to ~15 bullets (detail already in `guides/E2E-DELIVERY.md`), Superpowers condensed, load order made on-demand (no halt-on-missing for STANDARDS), conditional guide-loading index retained.
|
- `defaults/AGENTS.md` → thin core: 12 hard gates verbatim, 37 operating rules condensed to ~15 bullets (detail already in `guides/E2E-DELIVERY.md`), Superpowers condensed, load order made on-demand (no halt-on-missing for STANDARDS), conditional guide-loading index retained.
|
||||||
- `defaults/TOOLS.md` → index; full catalog moved to new `guides/TOOLS-REFERENCE.md` (read on demand).
|
- `defaults/TOOLS.md` → index; full catalog moved to new `guides/TOOLS-REFERENCE.md` (read on demand).
|
||||||
- `runtime/claude/RUNTIME.md` → slimmed (dedup tier table, terser pointers).
|
- `runtime/claude/RUNTIME.md` → slimmed (dedup tier table, terser pointers).
|
||||||
|
|
||||||
## Method (autoresearch-style validation)
|
## Method (autoresearch-style validation)
|
||||||
|
|
||||||
1. Built a 9-probe role battery (backend/deploy/review/orchestrate/secrets/docs/simple-trap/no-stop-at-PR/agent-work) + a deterministic 18-signature gate-checklist.
|
1. Built a 9-probe role battery (backend/deploy/review/orchestrate/secrets/docs/simple-trap/no-stop-at-PR/agent-work) + a deterministic 18-signature gate-checklist.
|
||||||
2. Headless interactive runs (Claude Max **subscription**, tmux — no API), scored by per-probe rubric.
|
2. Headless interactive runs (Claude Max **subscription**, tmux — no API), scored by per-probe rubric.
|
||||||
3. Keep-or-discard hill-climb (token cost gated by per-probe fidelity) proved the method; final design re-derived against THIS repo's content (diet-only, no drifted-deployment content imported).
|
3. Keep-or-discard hill-climb (token cost gated by per-probe fidelity) proved the method; final design re-derived against THIS repo's content (diet-only, no drifted-deployment content imported).
|
||||||
|
|
||||||
## Validation evidence
|
## Validation evidence
|
||||||
|
|
||||||
- Gate-checklist: ALL gates + critical rules + mode lines + sequential-thinking + OpenBrain + Superpowers present.
|
- Gate-checklist: ALL gates + critical rules + mode lines + sequential-thinking + OpenBrain + Superpowers present.
|
||||||
- A/B on real repo content: **thin 7/9 vs monolith 5/9** probes; strictly better on deploy/review/simple-task; composed **8,827 → 4,122 tok (−53%)**.
|
- A/B on real repo content: **thin 7/9 vs monolith 5/9** probes; strictly better on deploy/review/simple-task; composed **8,827 → 4,122 tok (−53%)**.
|
||||||
- p11 (don't-stop-at-PR): 3→2/3 on one rubric line — verified a scorer/phrasing artifact (answer correctly cites gates §5/§9 + close-issue; gate verbatim-present). Variance: thin 2/2/3, v0 3/3/3.
|
- p11 (don't-stop-at-PR): 3→2/3 on one rubric line — verified a scorer/phrasing artifact (answer correctly cites gates §5/§9 + close-issue; gate verbatim-present). Variance: thin 2/2/3, v0 3/3/3.
|
||||||
|
|
||||||
## Decisions / risks
|
## Decisions / risks
|
||||||
|
|
||||||
- **Diet-only** vs repo content (user decision). Did NOT import web1's Gate 13-15 / federated memory / OpenViking — canonical repo is behind those deployments; flagged for separate reconciliation.
|
- **Diet-only** vs repo content (user decision). Did NOT import web1's Gate 13-15 / federated memory / OpenViking — canonical repo is behind those deployments; flagged for separate reconciliation.
|
||||||
- AGENTS/TOOLS are shared across runtimes → diet benefits codex/pi/opencode too; RUNTIME change is claude-only.
|
- AGENTS/TOOLS are shared across runtimes → diet benefits codex/pi/opencode too; RUNTIME change is claude-only.
|
||||||
- p11 accepted as-is (user decision) — not gaming the rubric.
|
- p11 accepted as-is (user decision) — not gaming the rubric.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
PR open, paused for maintainer merge ratification (fleet-governing change). `mosaic upgrade` will propagate on merge.
|
PR open, paused for maintainer merge ratification (fleet-governing change). `mosaic upgrade` will propagate on merge.
|
||||||
|
|||||||
Reference in New Issue
Block a user