@event4u/agent-config 9.16.0 → 9.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +80 -130
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-handoff.md +100 -48
- package/dist/agent-src/commands/challenge-me/vision.md +5 -0
- package/dist/agent-src/commands/commit.md +1 -1
- package/dist/agent-src/commands/condense.md +19 -64
- package/dist/agent-src/commands/evals/agent-handoff.json +13 -1
- package/dist/agent-src/commands/evals/rule-compliance-audit.json +46 -0
- package/dist/agent-src/commands/feature/plan.md +20 -0
- package/dist/agent-src/commands/feature/roadmap.md +19 -0
- package/dist/agent-src/commands/memory/promote.md +14 -1
- package/dist/agent-src/commands/mode.md +9 -5
- package/dist/agent-src/commands/optimize/deep.md +72 -11
- package/dist/agent-src/commands/pr/create.md +29 -0
- package/dist/agent-src/commands/roadmap/create.md +29 -0
- package/dist/agent-src/commands/rule-compliance-audit.md +28 -5
- package/dist/agent-src/contexts/authority/commit-mechanics.md +5 -5
- package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +6 -1
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +4 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +27 -1
- package/dist/agent-src/contexts/execution/plan-confidence-gate.md +133 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +5 -2
- package/dist/agent-src/profiles/agency.yml +3 -3
- package/dist/agent-src/profiles/content_creator.yml +2 -2
- package/dist/agent-src/profiles/developer.yml +2 -2
- package/dist/agent-src/profiles/finance.yml +1 -1
- package/dist/agent-src/profiles/founder.yml +2 -2
- package/dist/agent-src/profiles/ops.yml +2 -2
- package/dist/agent-src/rules/active-remediation.md +2 -0
- package/dist/agent-src/rules/architecture.md +4 -2
- package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
- package/dist/agent-src/rules/autonomous-execution.md +1 -1
- package/dist/agent-src/rules/brand-consistency.md +10 -62
- package/dist/agent-src/rules/brand-source-of-truth.md +62 -11
- package/dist/agent-src/rules/broken-access-control.md +4 -0
- package/dist/agent-src/rules/cli-output-handling.md +5 -0
- package/dist/agent-src/rules/code-comment-discipline.md +3 -0
- package/dist/agent-src/rules/commit-conventions.md +2 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -2
- package/dist/agent-src/rules/cross-source-consistency.md +3 -0
- package/dist/agent-src/rules/design-fidelity.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
- package/dist/agent-src/rules/docker-commands.md +4 -0
- package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
- package/dist/agent-src/rules/domain-safety-disclaimer.md +5 -2
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +9 -0
- package/dist/agent-src/rules/image-likeness-and-rights.md +4 -0
- package/dist/agent-src/rules/improve-before-implement.md +4 -0
- package/dist/agent-src/rules/laravel-routing.md +4 -0
- package/dist/agent-src/rules/legal-safety-floor.md +3 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +5 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +2 -0
- package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +9 -2
- package/dist/agent-src/rules/php-coding.md +2 -0
- package/dist/agent-src/rules/prefer-enums-over-literals.md +3 -0
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +5 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
- package/dist/agent-src/rules/rule-type-governance.md +2 -0
- package/dist/agent-src/rules/scale-discipline.md +3 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +9 -2
- package/dist/agent-src/rules/senior-engineering-discipline.md +6 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +4 -0
- package/dist/agent-src/rules/source-discovery-gate.md +3 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
- package/dist/agent-src/rules/think-before-action.md +5 -0
- package/dist/agent-src/rules/token-budget-discipline.md +2 -2
- package/dist/agent-src/rules/ui-audit-gate.md +2 -0
- package/dist/agent-src/rules/user-interaction.md +3 -4
- package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +4 -4
- package/dist/agent-src/skills/copilot-config/SKILL.md +1 -1
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +7 -4
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -180
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +100 -0
- package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +91 -0
- package/dist/agent-src/skills/design-review/SKILL.md +4 -141
- package/dist/agent-src/skills/design-review/references/review-communication.md +92 -0
- package/dist/agent-src/skills/design-review/references/verification-automation.md +61 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +8 -27
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +31 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +4 -289
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +227 -0
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +75 -0
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/readme-reviewer/SKILL.md +2 -1
- package/dist/agent-src/skills/roadmap-management/SKILL.md +10 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +12 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +4 -2
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
- package/dist/agent-src/skills/token-optimizer/SKILL.md +2 -2
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +6 -3
- package/dist/agent-src/templates/agent-settings.md +13 -15
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +6 -2
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +13 -1
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
- package/dist/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +3 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/chunk-AIIUU73N.js +2040 -0
- package/dist/cli-delegate/{chunk-ZXXJLL5K.js → chunk-BSLUHV2F.js} +127 -1487
- package/dist/cli-delegate/{chunk-H574KOUH.js → chunk-ELMFOQPW.js} +35 -1
- package/dist/cli-delegate/chunk-LF2KKJ4Q.js +183 -0
- package/dist/cli-delegate/chunk-VSYT7OHO.js +1382 -0
- package/dist/cli-delegate/chunk-XGA2NTU4.js +3727 -0
- package/dist/cli-delegate/cmd_conformance.js +4 -3
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -2
- package/dist/cli-delegate/cmd_explain.js +36 -36
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +1169 -0
- package/dist/cli-delegate/cmd_memory_get.js +35 -3754
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +249 -0
- package/dist/cli-delegate/cmd_route_explain.js +285 -0
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_update.js +3 -3
- package/dist/cli-delegate/cmd_upgrade.js +3 -3
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +3 -3
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +84 -84
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +602 -507
- package/dist/install/install.mjs +34 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +25 -3
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_src.js +39 -6
- package/dist/scripts/_lib/agent_src.js.map +1 -1
- package/dist/server/schemas/settings.js +25 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/guidelines/abstraction-thresholds.md +53 -0
- package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +1 -1
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +7 -0
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +2 -2
- package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +5 -3
- package/docs/guidelines/agent-infra/size-and-scope.md +8 -2
- package/docs/guidelines/component-oriented-and-oop-development.md +11 -6
- package/docs/guidelines/docs/readme-size-and-splitting.md +5 -2
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
- package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
- package/src/config/agent-settings.template.yml +68 -0
- package/src/config/evaluator-budgets.json +8 -11
- package/src/config/gate-coverage.yml +70 -0
- package/src/scripts/_cli/cmd_explain.ts +41 -36
- package/src/scripts/_cli/cmd_handoff.ts +405 -0
- package/src/scripts/_cli/cmd_route_audit.ts +290 -0
- package/src/scripts/_cli/cmd_route_explain.ts +269 -0
- package/src/scripts/_cli/handoff_generate.ts +453 -0
- package/src/scripts/_cli/handoff_sessions.ts +435 -0
- package/src/scripts/_dispatch.bash +32 -0
- package/src/scripts/_lib/agent_src.ts +36 -6
- package/src/scripts/_lib/git_env.ts +40 -0
- package/src/scripts/_lib/md_table.ts +27 -0
- package/src/scripts/_lib/planning_settings.ts +43 -0
- package/src/scripts/_lib/release_material.ts +156 -0
- package/src/scripts/_lib/router_match.ts +301 -0
- package/src/scripts/annotate_r1_outcomes.ts +258 -0
- package/src/scripts/check_completion_review.ts +1140 -0
- package/src/scripts/check_condensation.ts +2 -1
- package/src/scripts/check_finding_dispositions.ts +278 -0
- package/src/scripts/check_pack_size.ts +4 -3
- package/src/scripts/check_references.ts +1 -0
- package/src/scripts/check_release_highlights.ts +300 -0
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_release_surface_equality.ts +132 -0
- package/src/scripts/check_reply_consistency.ts +187 -138
- package/src/scripts/compile_router.ts +20 -3
- package/src/scripts/dispatch_r2_reviewer.ts +968 -0
- package/src/scripts/eval_ui_triviality.ts +156 -0
- package/src/scripts/handoff_context_hook.ts +148 -0
- package/src/scripts/hook_manifest.yaml +17 -7
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/lint_abstraction_thresholds.ts +327 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +2 -2
- package/src/scripts/lint_plan_risk_register.ts +931 -0
- package/src/scripts/lint_profile_personas.ts +153 -0
- package/src/scripts/lint_token_budget_discipline.ts +148 -0
- package/src/scripts/lint_trigger_collisions.ts +257 -0
- package/src/scripts/release.ts +156 -32
- package/src/scripts/release_drill.ts +491 -0
- package/src/scripts/router_telemetry.ts +16 -290
- package/src/scripts/schemas/command.schema.json +33 -0
- package/src/scripts/schemas/rule.schema.json +10 -0
- package/src/scripts/self_review_gate.ts +41 -3
- package/src/scripts/skill_linter.ts +3 -1
- package/src/scripts/smoke/router.sh +1 -1
- package/src/scripts/update_counts.ts +60 -12
- package/src/server/schemas/settings.ts +41 -0
- package/dist/cli-delegate/{chunk-XX6TOPD7.js → chunk-WR6GTRHJ.js} +3 -3
|
@@ -14,7 +14,10 @@ relevant. Detection logic lives in [`autonomy-detection.md`](autonomy-detection.
|
|
|
14
14
|
|
|
15
15
|
The value is read once on the first turn (per
|
|
16
16
|
[`layered-settings`](../../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules))
|
|
17
|
-
and cached. Missing key → treat as `
|
|
17
|
+
and cached. Missing key → treat as `auto` (fail-closed — same behavior
|
|
18
|
+
as the shipped template default; absence of a key never grants the most
|
|
19
|
+
permissive mode). The one exception is the explicit cloud carve-out
|
|
20
|
+
below, where the whole settings file is absent by construction.
|
|
18
21
|
|
|
19
22
|
## Cloud platforms — settings degrade to `on`
|
|
20
23
|
|
|
@@ -129,6 +132,29 @@ knob. The per-dimension uncertainty score (see
|
|
|
129
132
|
[`notes-first-reasoning`](../../rules/notes-first-reasoning.md)) feeds this
|
|
130
133
|
decision. Engage per [`rdp-gate`](rdp-gate.md).
|
|
131
134
|
|
|
135
|
+
## Retry-budget escalation ladder — 2, 3, and the fresh session are ONE ladder
|
|
136
|
+
|
|
137
|
+
The suite states three retry numbers; they are **stages of one escalation
|
|
138
|
+
ladder on the same failing target**, not competing budgets:
|
|
139
|
+
|
|
140
|
+
1. **Attempt 1 fails → up to 2 retries of the same approach**
|
|
141
|
+
([`think-before-action`](../../rules/think-before-action.md) "MAX 2
|
|
142
|
+
RETRIES PER APPROACH") — the soft, agent-side stage: rethink between
|
|
143
|
+
attempts, switch approach when the same signature repeats
|
|
144
|
+
([`context-hygiene`](../../rules/context-hygiene.md) "same failure
|
|
145
|
+
signature twice → pivot").
|
|
146
|
+
2. **The 3rd consecutive failed attempt on the target trips N=3**
|
|
147
|
+
(this file, above): 2 retries + the initial attempt ARE the three
|
|
148
|
+
attempts N=3 counts. Terminal action: STOP, surface the attempts,
|
|
149
|
+
ask the user.
|
|
150
|
+
3. **Repeated N=3 cycles on the same task** escalate to
|
|
151
|
+
[`context-hygiene`](../../rules/context-hygiene.md)'s 3-Failure Rule:
|
|
152
|
+
state dump + recommend a fresh session.
|
|
153
|
+
|
|
154
|
+
No artifact may mint a fourth budget or a stricter one-strike cap for the
|
|
155
|
+
same subject; per-tool loop caps (`token-efficiency` >2 same-tool calls)
|
|
156
|
+
are a different subject (tool-call repetition, not fix attempts).
|
|
157
|
+
|
|
132
158
|
**Concrete diminishing-returns stop-signal.** "Marginal evidence drops" is
|
|
133
159
|
otherwise fuzzy; operationalize it so it is checkable, not vibes: when **two
|
|
134
160
|
consecutive investigative probes** (a read, a grep, a query) yield **no new
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Plan-Confidence Gate (Gate C)
|
|
2
|
+
|
|
3
|
+
Shared definition of the plan-confidence gate. Loaded by the gated
|
|
4
|
+
plan-authoring surfaces — [`/roadmap:create`](../../commands/roadmap/create.md),
|
|
5
|
+
the [`roadmap-writing`](../../skills/roadmap-writing/SKILL.md) skill,
|
|
6
|
+
[`/feature:plan`](../../commands/feature/plan.md), and
|
|
7
|
+
[`/feature:roadmap`](../../commands/feature/roadmap.md) — each of which links
|
|
8
|
+
here instead of restating the gate. Machine-checked grammars (the C→R1 state
|
|
9
|
+
schema, marker lines) are owned by
|
|
10
|
+
[`docs/contracts/plan-review-gates.md`](../../../docs/contracts/plan-review-gates.md);
|
|
11
|
+
this context carries the agent-side procedure.
|
|
12
|
+
|
|
13
|
+
## Activation
|
|
14
|
+
|
|
15
|
+
Read `planning.challenge_on_create` from `.agent-settings.yml` once per task
|
|
16
|
+
and cache it. `true` or **missing key** → the gate is active. `false` → the
|
|
17
|
+
gate is inert: proceed with the surface's normal flow, no marker line, no
|
|
18
|
+
interview.
|
|
19
|
+
|
|
20
|
+
**Explicit user bypass wins for that turn** — bypass phrasings and their
|
|
21
|
+
equivalents drop the gate immediately
|
|
22
|
+
(`DE: "einfach schreiben", "Interview überspringen" · EN: "just write it", "skip the interview"`).
|
|
23
|
+
A bypass is **counted**, never punished: append a `gate_c_bypass` event to
|
|
24
|
+
`agents/evidence/metrics/gate-metrics.jsonl` (see
|
|
25
|
+
[`plan-review-gates § metrics`](../../../docs/contracts/plan-review-gates.md))
|
|
26
|
+
so gate erosion stays visible.
|
|
27
|
+
|
|
28
|
+
## When it fires — and when NOT
|
|
29
|
+
|
|
30
|
+
**Fires** on a plan-artifact **authoring** ask reaching a gated surface: a new
|
|
31
|
+
roadmap, feature plan, or feature roadmap, or a from-scratch rewrite of one.
|
|
32
|
+
|
|
33
|
+
**Does NOT fire on:**
|
|
34
|
+
|
|
35
|
+
- checkbox flips, dashboard regens, archival moves, inbound-ref rewrites;
|
|
36
|
+
- prose-only or typo edits to an existing plan;
|
|
37
|
+
- `/roadmap:process-*` execution runs (execution is not authoring);
|
|
38
|
+
- artifacts that are not plans (ADRs, tickets, skills, rules).
|
|
39
|
+
|
|
40
|
+
## Procedure
|
|
41
|
+
|
|
42
|
+
### 1. Codebase first (challenge-me Step 0)
|
|
43
|
+
|
|
44
|
+
Before assessing confidence, run the lookup: existing routes, conventions,
|
|
45
|
+
prior similar features, the seed's cited files. **Never ask what `grep`,
|
|
46
|
+
`view`, or `codebase-retrieval` answers in seconds** — repo findings resolve
|
|
47
|
+
branches silently.
|
|
48
|
+
|
|
49
|
+
### 2. Seed-time confidence assessment
|
|
50
|
+
|
|
51
|
+
The measure is the four 95%-conditions from
|
|
52
|
+
[`/challenge-me vision`](../../commands/challenge-me/vision.md) § "The four
|
|
53
|
+
95% conditions". At seed time (before any interview turn) the check degrades
|
|
54
|
+
to: **does the ask already pin (a) the goal, (b) the scope boundary
|
|
55
|
+
(in/out), (c) the hard constraints, and (d) observable acceptance criteria —
|
|
56
|
+
without guessing?** Any gap → below 95%.
|
|
57
|
+
|
|
58
|
+
### 3a. Confident path
|
|
59
|
+
|
|
60
|
+
All four hold → emit **exactly one** marker line, then proceed with the
|
|
61
|
+
surface's normal flow:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
> Confidence ≥ 95% — creating directly (planning.challenge_on_create)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
No second marker, no summary of the assessment — one line, then the work.
|
|
68
|
+
|
|
69
|
+
### 3b. Uncertain path
|
|
70
|
+
|
|
71
|
+
Any gap → route into the [`/challenge-me vision`](../../commands/challenge-me/vision.md)
|
|
72
|
+
interview with the plan ask as seed. On reaching 95% (or the user firing
|
|
73
|
+
`!pitch`), the pitch feeds the surface's normal authoring flow — the same
|
|
74
|
+
mechanic as the existing `!roadmap` routing. The interview replaces the
|
|
75
|
+
surface's own clarification questions; it does not stack on top of them.
|
|
76
|
+
|
|
77
|
+
### 3c. Inline degrade protocol (hosts without `/challenge-me`)
|
|
78
|
+
|
|
79
|
+
`/challenge-me` ships in the `product-reasoning` pack; the gate never
|
|
80
|
+
hard-depends on it. When the command is unavailable, run the interview
|
|
81
|
+
inline with the same stop conditions:
|
|
82
|
+
|
|
83
|
+
1. **Resolve first** — derive goal / scope / constraints / AC from the ask
|
|
84
|
+
plus the codebase lookup (step 1); only genuinely open, load-bearing
|
|
85
|
+
branches survive.
|
|
86
|
+
2. **One question per turn** — surface one load-bearing branch with a
|
|
87
|
+
recommended option (numbered options per `user-interaction`;
|
|
88
|
+
one-question-per-turn per `ask-when-uncertain`).
|
|
89
|
+
3. **Repeat until** every surfaced branch is resolved AND no new
|
|
90
|
+
load-bearing branch appeared after the last answer AND the cached draft
|
|
91
|
+
summary (goal + in/out + constraints + AC) is stable for two turns.
|
|
92
|
+
4. **Then author** via the surface's normal flow.
|
|
93
|
+
|
|
94
|
+
### 4. C→R1 handoff — write the state file
|
|
95
|
+
|
|
96
|
+
On completing the gate (either path that ran an interview), write
|
|
97
|
+
`agents/runtime/state/gate-c-<plan-slug>.json` so the R1 risk pass never
|
|
98
|
+
re-asks resolved branches — the user is never interviewed twice for one
|
|
99
|
+
plan. Schema (canonical:
|
|
100
|
+
[`plan-review-gates § C→R1 handoff`](../../../docs/contracts/plan-review-gates.md)):
|
|
101
|
+
resolved branches, plan hash, timestamp, and a mandatory `transcript_ref`
|
|
102
|
+
(path + content hash of the interview transcript artifact).
|
|
103
|
+
|
|
104
|
+
**Write-path rule:** only the Gate C flow writes
|
|
105
|
+
`agents/runtime/state/gate-c-*.json`. This binds the **agent**; there is no
|
|
106
|
+
lint and no hook entry behind it, and the state file is gitignored so CI never
|
|
107
|
+
sees it — a human reading the diff is what catches a violation (stated
|
|
108
|
+
`enforced_by: none` in
|
|
109
|
+
[`plan-review-gates § 4.1`](../../../docs/contracts/plan-review-gates.md)).
|
|
110
|
+
The rule defends against silent agent shortcuts, not against the local human
|
|
111
|
+
(who holds the settings escape hatch anyway).
|
|
112
|
+
Confident-path runs (no interview) write no state file; R1 then runs its
|
|
113
|
+
risk pass fresh.
|
|
114
|
+
|
|
115
|
+
## Non-goals
|
|
116
|
+
|
|
117
|
+
- **No execution authorization.** The gate ends where authoring ends — the
|
|
118
|
+
post-artifact hard stop (`scope-control § Authoring vs. implementation`)
|
|
119
|
+
is unchanged; no gate outcome licenses implementation.
|
|
120
|
+
- **No safety-floor changes.** Hard Floor, commit policy, and git-ops gates
|
|
121
|
+
are untouched by any gate path.
|
|
122
|
+
- **No firing on maintenance touches** (see "When it fires" above).
|
|
123
|
+
|
|
124
|
+
## See also
|
|
125
|
+
|
|
126
|
+
- [`/challenge-me vision`](../../commands/challenge-me/vision.md) — the four
|
|
127
|
+
95%-conditions and the interview this gate routes into.
|
|
128
|
+
- [`plan-review-gates`](../../../docs/contracts/plan-review-gates.md) — machine
|
|
129
|
+
grammars: C→R1 state schema, Risk Register, completion review.
|
|
130
|
+
- [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — the
|
|
131
|
+
one-question-per-turn floor the degrade protocol runs under.
|
|
132
|
+
- [`scope-control`](../../rules/scope-control.md) — the post-artifact hard
|
|
133
|
+
stop this gate never softens.
|
|
@@ -127,8 +127,11 @@ only: lines matching `commit:` / `git commit` / `Commit phase`.
|
|
|
127
127
|
Cache the answer for the whole run; do **not** re-ask per step.
|
|
128
128
|
Hard-Floor diffs (bulk deletions, infra) still trigger the
|
|
129
129
|
per-commit gate from [`commit-mechanics`](../authority/commit-mechanics.md).
|
|
130
|
-
- **Commit steps present, non-autonomous** →
|
|
131
|
-
|
|
130
|
+
- **Commit steps present, non-autonomous** → same one-shot pre-scan
|
|
131
|
+
ask as above, before the run starts; never per step
|
|
132
|
+
(per [`commit-mechanics`](../authority/commit-mechanics.md) —
|
|
133
|
+
`commit-policy` § NEVER ask about committing holds regardless of
|
|
134
|
+
autonomy).
|
|
132
135
|
|
|
133
136
|
## 4. Resolve cadences — read once, cache for the run
|
|
134
137
|
|
|
@@ -16,6 +16,8 @@ routes_to:
|
|
|
16
16
|
- "guideline:agent-infra/active-remediation-mechanics"
|
|
17
17
|
workspaces: [engineering]
|
|
18
18
|
packs: [engineering-base]
|
|
19
|
+
collision_ok:
|
|
20
|
+
"refactor": "an explicit clean-up/refactor ask is the remediation ladder's own trigger"
|
|
19
21
|
---
|
|
20
22
|
|
|
21
23
|
# Active Remediation
|
|
@@ -11,6 +11,8 @@ routes_to:
|
|
|
11
11
|
- "skill:module-detect-on-the-fly"
|
|
12
12
|
workspaces: [agent-config-maintainer, engineering]
|
|
13
13
|
packs: [meta]
|
|
14
|
+
collision_ok:
|
|
15
|
+
"controller": "thin-handler floor on controller work"
|
|
14
16
|
---
|
|
15
17
|
|
|
16
18
|
# Architecture Rules
|
|
@@ -31,7 +33,7 @@ Fires on new files, classes, controllers, modules, or any structural decision ab
|
|
|
31
33
|
- **Business logic lives in services / use-cases** — calculations, orchestration, cross-aggregate validation.
|
|
32
34
|
- **Domain models stay behavior-rich but I/O-free** — no HTTP, no DB transactions in the model; only domain rules, relationships, derived properties.
|
|
33
35
|
- Always check the existing directory structure before creating new files.
|
|
34
|
-
- Respect existing patterns — apply modern standards to **new** code only.
|
|
36
|
+
- Respect existing patterns — apply modern standards to **new** code only. Stale idioms in *existing* code you touch are governed by the [`active-remediation`](active-remediation.md) ladder (fix-now / note + ask), not by this line.
|
|
35
37
|
|
|
36
38
|
→ Laravel-specific patterns (FormRequest, single-action `__invoke`, Eloquent scopes): see [`laravel`](../skills/laravel/SKILL.md), [`laravel-validation`](../skills/laravel-validation/SKILL.md).
|
|
37
39
|
→ Symfony: see [`symfony-workflow`](../skills/symfony-workflow/SKILL.md).
|
|
@@ -40,7 +42,7 @@ Fires on new files, classes, controllers, modules, or any structural decision ab
|
|
|
40
42
|
## Reusable components + object-oriented design
|
|
41
43
|
|
|
42
44
|
- **Think in reusable units** — decompose UI into composable components; reuse the project's primitives / shared abstractions before building; extract a new unit only when the same shape repeats (audit existing first, per [`ui-audit-gate`](ui-audit-gate.md)).
|
|
43
|
-
- **Object-oriented where it reduces complexity** — in an object-oriented / class-based codebase, encapsulation, single responsibility, composition over inheritance, behavior-rich domain objects, and design patterns *where they earn their place* are the high-priority default — never speculative abstraction, and never imposed on a functional / pipeline codebase (detect + defer to its paradigm). Bounded by [`minimal-safe-diff`](minimal-safe-diff.md) + [`senior-engineering-discipline`](senior-engineering-discipline.md), which **win on conflict**: a reviewer should be able to name the concrete duplication or second axis of change the abstraction removes (rule of thumb: two real repetitions before you extract).
|
|
45
|
+
- **Object-oriented where it reduces complexity** — in an object-oriented / class-based codebase, encapsulation, single responsibility, composition over inheritance, behavior-rich domain objects, and design patterns *where they earn their place* are the high-priority default — never speculative abstraction, and never imposed on a functional / pipeline codebase (detect + defer to its paradigm). Bounded by [`minimal-safe-diff`](minimal-safe-diff.md) + [`senior-engineering-discipline`](senior-engineering-discipline.md), which **win on conflict**: a reviewer should be able to name the concrete duplication or second axis of change the abstraction removes (rule of thumb: two real repetitions before you extract a **code-level** abstraction; UI classes carry deliberately higher bars — per-class canon: [`abstraction-thresholds`](../docs/guidelines/abstraction-thresholds.md)).
|
|
44
46
|
|
|
45
47
|
Full standard — split FE / backend, with the stack carve-out index and the anti-over-engineering deference: [`component-oriented-and-oop-development`](../docs/guidelines/component-oriented-and-oop-development.md).
|
|
46
48
|
|
|
@@ -17,6 +17,8 @@ validator_ignore:
|
|
|
17
17
|
reason: "Rule scopes the portability gate to the uncondensed authoring tree."
|
|
18
18
|
workspaces: [agent-config-maintainer]
|
|
19
19
|
packs: [meta]
|
|
20
|
+
collision_ok:
|
|
21
|
+
".augment/": "portability + sync floors for the .augment tree"
|
|
20
22
|
---
|
|
21
23
|
|
|
22
24
|
# Augment Edit Discipline
|
|
@@ -25,7 +25,7 @@ The universal safety floor (production-branch merges, deploys, pushes, prod data
|
|
|
25
25
|
|
|
26
26
|
## Setting — `personal.autonomy`
|
|
27
27
|
|
|
28
|
-
Three values: `on` (suppress trivial questions), `off` (ask trivial questions too), `auto` (default — same as `off` until the user opts in via a standing autonomy directive). Read once on the first turn and cache. Missing key → treat as `on
|
|
28
|
+
Three values: `on` (suppress trivial questions), `off` (ask trivial questions too), `auto` (default — same as `off` until the user opts in via a standing autonomy directive). Read once on the first turn and cache. Missing key → treat as `auto` (fail-closed, same as the shipped default; only the explicit cloud carve-out — no settings file at all — degrades to `on`). Full table, semantics, and cloud behavior: [`contexts/execution/autonomy-mechanics.md`](../contexts/execution/autonomy-mechanics.md).
|
|
29
29
|
|
|
30
30
|
## Opt-in detection — match by intent, not exact string
|
|
31
31
|
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
2
|
+
type: "manual"
|
|
3
3
|
tier: "2a"
|
|
4
|
-
description: "
|
|
5
|
-
|
|
6
|
-
- keyword: "brand"
|
|
7
|
-
- keyword: "on-brand"
|
|
8
|
-
- keyword: "off-brand"
|
|
9
|
-
- keyword: "brand voice"
|
|
10
|
-
- keyword: "brand tokens"
|
|
11
|
-
- phrase: "brand consistency"
|
|
12
|
-
- phrase: "on brand"
|
|
4
|
+
description: "Merged into brand-source-of-truth (2026-08-04) — every emitted colour/type/spacing/voice choice traces to a brand token or voice rule"
|
|
5
|
+
alwaysApply: false
|
|
13
6
|
applies_to_user_types:
|
|
14
7
|
- "creator"
|
|
15
8
|
- "developer"
|
|
@@ -21,56 +14,11 @@ packs: [brand]
|
|
|
21
14
|
|
|
22
15
|
# Brand Consistency
|
|
23
16
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
against the **active brand tokens and voice profile**, and anything that cannot
|
|
27
|
-
be traced back to one is flagged off-brand. It mirrors the design-intelligence
|
|
28
|
-
principle that **audit findings outrank corpus suggestions** — the consumer's
|
|
29
|
-
brand outranks any generated default.
|
|
17
|
+
**Iron Law.** Every emitted colour, type, spacing, and voice choice traces to a
|
|
18
|
+
brand token or a voice rule — a value that traces to neither is off-brand.
|
|
30
19
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
NEVER SHIP AN ASSET THE ACTIVE BRAND CANNOT ACCOUNT FOR.
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## What this gates
|
|
40
|
-
|
|
41
|
-
- **Colour / type / spacing** in generated UI or assets that is not one of the
|
|
42
|
-
active brand tokens (from `state.ui_design` or the consumer's `.tokens.json`).
|
|
43
|
-
A raw hex / font / px value with no token behind it is off-brand.
|
|
44
|
-
- **Copy and microcopy** whose register contradicts the active voice profile
|
|
45
|
-
(e.g. playful copy under an authoritative `Ruler` voice).
|
|
46
|
-
- **Generated brand assets** (logo, banner, social) emitted without injecting the
|
|
47
|
-
registered brand tokens — raw generation is allowed only when no brand layer
|
|
48
|
-
exists (graceful fallback), never as a silent override of one that does.
|
|
49
|
-
|
|
50
|
-
## When it fires
|
|
51
|
-
|
|
52
|
-
A brand layer is active for the run (a `.tokens.json` / `state.ui_design` brand
|
|
53
|
-
profile or a confirmed `brand-strategy` / `brand-identity` constraint set) AND a
|
|
54
|
-
UI / copy / asset is being emitted or reviewed.
|
|
55
|
-
|
|
56
|
-
## When NOT to fire
|
|
57
|
-
|
|
58
|
-
- No brand layer exists yet (greenfield) — there is nothing to validate against;
|
|
59
|
-
generation proceeds on the brief, and `brand-strategy` / `brand-identity`
|
|
60
|
-
define the tokens first.
|
|
61
|
-
- The user explicitly scopes an exploration ("just show options") with no
|
|
62
|
-
commitment to an on-brand deliverable.
|
|
63
|
-
- Non-brand surfaces: scripts, CLI output, internal tooling.
|
|
64
|
-
|
|
65
|
-
## How to surface a violation
|
|
66
|
-
|
|
67
|
-
Name the off-brand value, the token/voice rule it should have matched, and the
|
|
68
|
-
fix — do not silently rewrite. Untraceable value → "off-brand: `<value>` has no
|
|
69
|
-
brand token; nearest is `<token>`" so the human decides token-or-exception.
|
|
70
|
-
|
|
71
|
-
## See also
|
|
72
|
-
|
|
73
|
-
- [`brand-source-of-truth`](brand-source-of-truth.md) — establishes which brand profile is authoritative for the run.
|
|
74
|
-
- [`brand-identity`](../skills/brand-identity/SKILL.md) — defines the tokens this gate validates against.
|
|
75
|
-
- [`brand-to-tokens`](../skills/brand-to-tokens/SKILL.md) — emits the DTCG `.tokens.json` source of truth.
|
|
76
|
-
- [`design-intelligence`](../skills/design-intelligence/SKILL.md) — the "audit findings outrank corpus" precedent this gate mirrors.
|
|
20
|
+
Body merged into [`brand-source-of-truth`](brand-source-of-truth.md) § Iron
|
|
21
|
+
Law 2 (rule hygiene, 2026-08-04): the two rules shared triggers (`brand
|
|
22
|
+
tokens`, `brand voice`) and one subject — the consumer brand as the run's
|
|
23
|
+
authority. This file stays as a pointer so inbound references keep resolving;
|
|
24
|
+
it is `type: manual` (reference-only, no router emission).
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
|
-
description: "Consumer brand tokens + voice profile are the run's source of truth — the corpus fills gaps, never overrides"
|
|
4
|
+
description: "Consumer brand tokens + voice profile are the run's source of truth — the corpus fills gaps, never overrides; emitted values that trace to no token are flagged off-brand"
|
|
5
5
|
triggers:
|
|
6
|
+
- keyword: "brand"
|
|
7
|
+
- keyword: "on-brand"
|
|
8
|
+
- keyword: "off-brand"
|
|
6
9
|
- keyword: "brand tokens"
|
|
7
10
|
- keyword: "brand voice"
|
|
8
11
|
- keyword: "brand guide"
|
|
9
12
|
- keyword: "brand profile"
|
|
13
|
+
- phrase: "brand consistency"
|
|
14
|
+
- phrase: "on brand"
|
|
10
15
|
- phrase: "brand source of truth"
|
|
11
16
|
applies_to_user_types:
|
|
12
17
|
- "creator"
|
|
@@ -19,18 +24,35 @@ packs: [brand]
|
|
|
19
24
|
|
|
20
25
|
# Brand Source of Truth
|
|
21
26
|
|
|
22
|
-
A precedence rule
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
A precedence rule plus its validation gate (merged from the former
|
|
28
|
+
`brand-consistency` rule, 2026-08-04 — the pair shared triggers and one
|
|
29
|
+
subject). When a consumer already has a brand — registered tokens
|
|
30
|
+
(`.tokens.json`), a voice profile, a brand guide — that brand is authoritative
|
|
31
|
+
for the run. The curated `brand` corpus (archetypes, colour psychology, type
|
|
32
|
+
principles) is a **gap-filler**, never an override.
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
Brand is the layer that *constrains* UI, copy, and assets — not a coat of paint
|
|
35
|
+
applied after. The gate half is a concrete Validation gate: emitted artifacts
|
|
36
|
+
are checked against the **active brand tokens and voice profile**, and anything
|
|
37
|
+
that cannot be traced back to one is flagged off-brand. It mirrors the
|
|
38
|
+
design-intelligence principle that **audit findings outrank corpus
|
|
39
|
+
suggestions** — the consumer's brand outranks any generated default.
|
|
40
|
+
|
|
41
|
+
## Iron Law 1 — precedence
|
|
28
42
|
|
|
29
43
|
```
|
|
30
44
|
CONSUMER BRAND TOKENS AND VOICE WIN. THE CORPUS FILLS GAPS ONLY.
|
|
31
45
|
NEVER OVERWRITE A REGISTERED BRAND VALUE WITH A CORPUS DEFAULT.
|
|
32
46
|
```
|
|
33
47
|
|
|
48
|
+
## Iron Law 2 — the consistency gate
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
EVERY EMITTED COLOUR, TYPE, SPACING, AND VOICE CHOICE TRACES TO A BRAND TOKEN
|
|
52
|
+
OR A VOICE RULE. A VALUE THAT TRACES TO NEITHER IS OFF-BRAND.
|
|
53
|
+
NEVER SHIP AN ASSET THE ACTIVE BRAND CANNOT ACCOUNT FOR.
|
|
54
|
+
```
|
|
55
|
+
|
|
34
56
|
## Precedence order
|
|
35
57
|
|
|
36
58
|
1. **Consumer brand profile** — registered `.tokens.json`, voice profile, brand
|
|
@@ -39,16 +61,42 @@ NEVER OVERWRITE A REGISTERED BRAND VALUE WITH A CORPUS DEFAULT.
|
|
|
39
61
|
3. **The brand corpus** — archetype / colour / type / messaging defaults, used
|
|
40
62
|
only where 1 and 2 are silent, and always surfaced as corpus-sourced.
|
|
41
63
|
|
|
64
|
+
## What the gate covers
|
|
65
|
+
|
|
66
|
+
- **Colour / type / spacing** in generated UI or assets that is not one of the
|
|
67
|
+
active brand tokens (from `state.ui_design` or the consumer's `.tokens.json`).
|
|
68
|
+
A raw hex / font / px value with no token behind it is off-brand.
|
|
69
|
+
- **Copy and microcopy** whose register contradicts the active voice profile
|
|
70
|
+
(e.g. playful copy under an authoritative `Ruler` voice).
|
|
71
|
+
- **Generated brand assets** (logo, banner, social) emitted without injecting the
|
|
72
|
+
registered brand tokens — raw generation is allowed only when no brand layer
|
|
73
|
+
exists (graceful fallback), never as a silent override of one that does.
|
|
74
|
+
|
|
42
75
|
## When it fires
|
|
43
76
|
|
|
44
|
-
|
|
45
|
-
corpus from quietly replacing a value the brand already
|
|
77
|
+
- **Precedence half:** any brand decision while a consumer brand profile is
|
|
78
|
+
present — to keep the corpus from quietly replacing a value the brand already
|
|
79
|
+
defines.
|
|
80
|
+
- **Gate half:** a brand layer is active for the run (a `.tokens.json` /
|
|
81
|
+
`state.ui_design` brand profile or a confirmed `brand-strategy` /
|
|
82
|
+
`brand-identity` constraint set) AND a UI / copy / asset is being emitted or
|
|
83
|
+
reviewed.
|
|
46
84
|
|
|
47
85
|
## When NOT to fire
|
|
48
86
|
|
|
49
87
|
- No consumer brand exists (greenfield) — the corpus is the only ground; use it,
|
|
50
|
-
marked as corpus-sourced, until `brand-identity` defines real tokens.
|
|
51
|
-
|
|
88
|
+
marked as corpus-sourced, until `brand-identity` defines real tokens. There is
|
|
89
|
+
nothing to validate against; generation proceeds on the brief, and
|
|
90
|
+
`brand-strategy` / `brand-identity` define the tokens first.
|
|
91
|
+
- The user explicitly scopes an exploration ("just show options") with no
|
|
92
|
+
commitment to an on-brand deliverable.
|
|
93
|
+
- Non-brand surfaces: scripts, CLI output, internal tooling.
|
|
94
|
+
|
|
95
|
+
## How to surface a violation
|
|
96
|
+
|
|
97
|
+
Name the off-brand value, the token/voice rule it should have matched, and the
|
|
98
|
+
fix — do not silently rewrite. Untraceable value → "off-brand: `<value>` has no
|
|
99
|
+
brand token; nearest is `<token>`" so the human decides token-or-exception.
|
|
52
100
|
|
|
53
101
|
## Design register note
|
|
54
102
|
|
|
@@ -61,6 +109,9 @@ for the full Brand-mode vs Product-mode discriminator.
|
|
|
61
109
|
|
|
62
110
|
## See also
|
|
63
111
|
|
|
64
|
-
- [`brand-consistency`](brand-consistency.md) —
|
|
112
|
+
- [`brand-consistency`](brand-consistency.md) — pointer stub; its body lives here since the 2026-08-04 merge.
|
|
65
113
|
- [`brand`](../skills/brand/SKILL.md) — the gap-fill corpus this rule subordinates to consumer brand.
|
|
114
|
+
- [`brand-identity`](../skills/brand-identity/SKILL.md) — defines the tokens the gate validates against.
|
|
115
|
+
- [`brand-to-tokens`](../skills/brand-to-tokens/SKILL.md) — emits the DTCG `.tokens.json` source of truth.
|
|
116
|
+
- [`design-intelligence`](../skills/design-intelligence/SKILL.md) — the "audit findings outrank corpus" precedent the gate mirrors.
|
|
66
117
|
- [`docs/guidelines/design-modes.md`](../docs/guidelines/design-modes.md) — brand vs product register discriminator and routing.
|
|
@@ -19,6 +19,10 @@ routes_to:
|
|
|
19
19
|
- "skill:multi-tenancy"
|
|
20
20
|
workspaces: [engineering]
|
|
21
21
|
packs: [engineering-base]
|
|
22
|
+
collision_ok:
|
|
23
|
+
"controller": "controllers return user data — the ownership/tenant check floor"
|
|
24
|
+
"endpoint": "every data-returning endpoint needs the three negative tests"
|
|
25
|
+
"tenant": "cross-tenant isolation is this rule's core subject"
|
|
22
26
|
---
|
|
23
27
|
|
|
24
28
|
# Broken Access Control
|
|
@@ -30,6 +30,11 @@ routes_to:
|
|
|
30
30
|
- "skill:rtk-output-filtering"
|
|
31
31
|
workspaces: [agent-config-maintainer, engineering]
|
|
32
32
|
packs: [meta]
|
|
33
|
+
collision_ok:
|
|
34
|
+
"phpstan": "phpstan output is verbose — rtk wrap applies"
|
|
35
|
+
"composer": "composer output is verbose — rtk wrap applies"
|
|
36
|
+
"docker": "docker output is verbose — rtk wrap applies"
|
|
37
|
+
"rector": "rector output is verbose — rtk wrap applies"
|
|
33
38
|
---
|
|
34
39
|
|
|
35
40
|
# Cli Output Handling
|
|
@@ -17,6 +17,9 @@ routes_to:
|
|
|
17
17
|
- "guideline:code-clarity"
|
|
18
18
|
workspaces: [engineering]
|
|
19
19
|
packs: [engineering-base]
|
|
20
|
+
collision_ok:
|
|
21
|
+
"refactor": "refactors churn comments — the keep/drop discipline applies"
|
|
22
|
+
"implement": "fresh implementation is where over-commenting lands"
|
|
20
23
|
---
|
|
21
24
|
|
|
22
25
|
# Code Comment Discipline
|
|
@@ -18,7 +18,7 @@ enforced_by:
|
|
|
18
18
|
|
|
19
19
|
> **Enforced by:** [`scripts/context_hygiene_hook.ts`](../../scripts/context_hygiene_hook.ts)
|
|
20
20
|
> on Augment + Claude Code (`PostToolUse`). The hook maintains
|
|
21
|
-
> `agents/
|
|
21
|
+
> `agents/state/context-hygiene.json` (tool-call count, loop signal,
|
|
22
22
|
> freshness milestones at 20/40/60); the prose below is the spec the
|
|
23
23
|
> hook implements and the agent-side fallback.
|
|
24
24
|
|
|
@@ -30,7 +30,8 @@ Monitor for **context decay** — long conversations degrade quality and waste t
|
|
|
30
30
|
re-reading files already in context · 15+ completed tasks and a new unrelated
|
|
31
31
|
topic · branch changed since start · ~24 hours passed.
|
|
32
32
|
|
|
33
|
-
**Repeat** at multiples: messages 20/40/60, tasks 15/30/45
|
|
33
|
+
**Repeat** at multiples: messages 20/40/60, tasks 15/30/45 (the task
|
|
34
|
+
15/30/45 ladder is agent-side only — the hook tracks no task counter).
|
|
34
35
|
**ONLY at exact thresholds.** Between: silence. Suggestion template
|
|
35
36
|
(token-cost estimate + numbered options): the mechanics guideline below.
|
|
36
37
|
|
|
@@ -23,6 +23,9 @@ routes_to:
|
|
|
23
23
|
- "guideline:agent-infra/cross-source-consistency-mechanics"
|
|
24
24
|
workspaces: [engineering, product]
|
|
25
25
|
packs: [engineering-base, product-basic]
|
|
26
|
+
collision_ok:
|
|
27
|
+
"mockup": "a mockup is a second source — discrepancy check against the ticket text"
|
|
28
|
+
"screenshot": "a screenshot is a second source — discrepancy check"
|
|
26
29
|
---
|
|
27
30
|
|
|
28
31
|
# Cross-Source Consistency
|
|
@@ -25,6 +25,8 @@ applies_to_user_types:
|
|
|
25
25
|
- "all"
|
|
26
26
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
27
27
|
packs: [meta]
|
|
28
|
+
collision_ok:
|
|
29
|
+
"screenshot": "a screenshot shipping into docs is the PII/anonymization gate"
|
|
28
30
|
---
|
|
29
31
|
|
|
30
32
|
# Doc-Screenshot Hygiene
|
|
@@ -11,6 +11,10 @@ routes_to:
|
|
|
11
11
|
- "skill:docker"
|
|
12
12
|
workspaces: [engineering]
|
|
13
13
|
packs: [engineering-base]
|
|
14
|
+
collision_ok:
|
|
15
|
+
"artisan": "artisan runs inside the project container, never on the host"
|
|
16
|
+
"composer": "composer runs inside the project container"
|
|
17
|
+
"docker": "its own core subject"
|
|
14
18
|
---
|
|
15
19
|
|
|
16
20
|
# Docker Commands
|