@event4u/agent-config 14.22.0 → 15.0.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +333 -356
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-handoff.md +8 -7
- package/dist/agent-src/commands/agents/init.md +1 -1
- package/dist/agent-src/commands/agents/user/accept.md +4 -4
- package/dist/agent-src/commands/agents/user/delete.md +2 -2
- package/dist/agent-src/commands/agents/user/init.md +3 -3
- package/dist/agent-src/commands/agents/user/review.md +3 -3
- package/dist/agent-src/commands/agents/user/show.md +3 -3
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +6 -6
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +2 -2
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/inbox.md +5 -5
- package/dist/agent-src/commands/analyze/incident.md +3 -3
- package/dist/agent-src/commands/analyze/near-miss.md +3 -3
- package/dist/agent-src/commands/analyze/postmortem.md +4 -4
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/analyze.md +2 -2
- package/dist/agent-src/commands/bug/fix.md +1 -1
- package/dist/agent-src/commands/bug/investigate.md +2 -2
- package/dist/agent-src/commands/cost/profile.md +3 -3
- package/dist/agent-src/commands/design.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +2 -2
- package/dist/agent-src/commands/ghostwriter/fetch.md +4 -4
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/show.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +9 -9
- package/dist/agent-src/commands/humanize.md +6 -6
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/judge/solo.md +1 -1
- package/dist/agent-src/commands/judge.md +1 -1
- package/dist/agent-src/commands/knowledge/cross-repo.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +2 -2
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/add.md +3 -3
- package/dist/agent-src/commands/memory/load.md +4 -4
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +4 -4
- package/dist/agent-src/commands/memory/propose.md +2 -2
- package/dist/agent-src/commands/mode.md +5 -5
- package/dist/agent-src/commands/post-as/ghostwriter.md +3 -3
- package/dist/agent-src/commands/post-as/me.md +7 -7
- package/dist/agent-src/commands/pr/create.md +1 -1
- package/dist/agent-src/commands/pr/merge.md +48 -39
- package/dist/agent-src/commands/profile/activate.md +1 -1
- package/dist/agent-src/commands/profile/show.md +1 -1
- package/dist/agent-src/commands/research/deep.md +2 -2
- package/dist/agent-src/commands/research/report.md +2 -2
- package/dist/agent-src/commands/review/changes.md +1 -1
- package/dist/agent-src/commands/review/routing.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +2 -2
- package/dist/agent-src/commands/roadmap/next.md +9 -1
- package/dist/agent-src/commands/roadmap/process-full.md +2 -2
- package/dist/agent-src/commands/security-audit-config.md +3 -3
- package/dist/agent-src/commands/skill/preview.md +1 -1
- package/dist/agent-src/commands/skills/discover.md +1 -1
- package/dist/agent-src/commands/sync/agent-settings.md +2 -2
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tests/create.md +1 -1
- package/dist/agent-src/commands/tests/e2e-heal.md +1 -1
- package/dist/agent-src/commands/tests/e2e-plan.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +6 -6
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -2
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +88 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +1 -1
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -1
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +13 -1
- package/dist/agent-src/contexts/execution/cheap-question-mechanics.md +1 -1
- package/dist/agent-src/contexts/execution/contract-decision-sheet.md +3 -3
- package/dist/agent-src/contexts/execution/mandated-lines.md +1 -1
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +1 -1
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -1
- package/dist/agent-src/contexts/execution/plan-confidence-gate.md +5 -5
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-routing.md +2 -2
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +3 -3
- package/dist/agent-src/contexts/execution/verification-mechanics.md +1 -1
- package/dist/agent-src/contexts/judges/persona-voice-rubric.md +2 -2
- package/dist/agent-src/guidelines/abstraction-thresholds.md +88 -0
- package/dist/agent-src/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +99 -0
- package/dist/agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +325 -0
- package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +222 -0
- package/dist/agent-src/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/asking-and-brevity-examples.md +198 -0
- package/dist/agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
- package/dist/agent-src/guidelines/agent-infra/carve-out-predicates.md +17 -0
- package/dist/agent-src/guidelines/agent-infra/comparison-matrix.md +179 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +165 -0
- package/dist/agent-src/guidelines/agent-infra/corpus-grounding-authoring.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/critical-thinking.md +156 -0
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
- package/dist/agent-src/guidelines/agent-infra/direct-answers-demos.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/domain-adoption-gates.md +112 -0
- package/dist/agent-src/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
- package/dist/agent-src/guidelines/agent-infra/domain-pack-architecture.md +56 -0
- package/dist/agent-src/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/emphasis-budget.md +45 -0
- package/dist/agent-src/guidelines/agent-infra/engineering-memory-data-format.md +210 -0
- package/dist/agent-src/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/dist/agent-src/guidelines/agent-infra/existence-question-verdicts.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/failure-signatures.md +70 -0
- package/dist/agent-src/guidelines/agent-infra/false-green.md +233 -0
- package/dist/agent-src/guidelines/agent-infra/first-principles.md +192 -0
- package/dist/agent-src/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +169 -0
- package/dist/agent-src/guidelines/agent-infra/gate-authoring.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/guarded-baseline.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/installed-tools-manifest.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/inversion-thinking.md +388 -0
- package/dist/agent-src/guidelines/agent-infra/ios-simulator-guide.md +378 -0
- package/dist/agent-src/guidelines/agent-infra/language-and-tone-examples.md +141 -0
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +317 -0
- package/dist/agent-src/guidelines/agent-infra/linked-projects-onboarding-gate.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/mcp-request-signing.md +197 -0
- package/dist/agent-src/guidelines/agent-infra/memory-access.md +149 -0
- package/dist/agent-src/guidelines/agent-infra/mental-models.md +314 -0
- package/dist/agent-src/guidelines/agent-infra/minimal-safe-diff-mechanics.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/missing-tool-handling.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +101 -0
- package/dist/agent-src/guidelines/agent-infra/naming.md +69 -0
- package/dist/agent-src/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
- package/dist/agent-src/guidelines/agent-infra/output-patterns.md +117 -0
- package/dist/agent-src/guidelines/agent-infra/recurring-criticism-mechanics.md +96 -0
- package/dist/agent-src/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
- package/dist/agent-src/guidelines/agent-infra/review-routing-data-format.md +143 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +274 -0
- package/dist/agent-src/guidelines/agent-infra/role-contracts.md +209 -0
- package/dist/agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/rule-type-governance.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/scqa-framework.md +526 -0
- package/dist/agent-src/guidelines/agent-infra/security-lint-containment.md +121 -0
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/simplicity-and-goal-demos.md +211 -0
- package/dist/agent-src/guidelines/agent-infra/six-hats.md +353 -0
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +229 -0
- package/dist/agent-src/guidelines/agent-infra/skill-quality-checklist.md +157 -0
- package/dist/agent-src/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/symptom-driven-harvest-loop.md +104 -0
- package/dist/agent-src/guidelines/agent-infra/systems-thinking.md +220 -0
- package/dist/agent-src/guidelines/agent-infra/tool-description-as-policy.md +35 -0
- package/dist/agent-src/guidelines/agent-infra/tool-integration.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
- package/dist/agent-src/guidelines/agent-infra/untrusted-input-spotlighting.md +166 -0
- package/dist/agent-src/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
- package/dist/agent-src/guidelines/augment-portability-patterns.md +70 -0
- package/dist/agent-src/guidelines/code-clarity.md +350 -0
- package/dist/agent-src/guidelines/component-oriented-and-oop-development.md +189 -0
- package/dist/agent-src/guidelines/cross-role-handoff.md +127 -0
- package/dist/agent-src/guidelines/design-antipatterns-triggers.json +18 -0
- package/dist/agent-src/guidelines/design-antipatterns.md +327 -0
- package/dist/agent-src/guidelines/design-asset-discipline.md +38 -0
- package/dist/agent-src/guidelines/design-canon.md +63 -0
- package/dist/agent-src/guidelines/design-fidelity-mechanics.md +293 -0
- package/dist/agent-src/guidelines/design-fidelity-routing.md +78 -0
- package/dist/agent-src/guidelines/design-handover-extraction.md +117 -0
- package/dist/agent-src/guidelines/design-modes.md +143 -0
- package/dist/agent-src/guidelines/design-reconciliation.md +172 -0
- package/dist/agent-src/guidelines/docs/readme-size-and-splitting.md +209 -0
- package/dist/agent-src/guidelines/e2e/playwright.md +363 -0
- package/dist/agent-src/guidelines/gtm-handoff.md +114 -0
- package/dist/agent-src/guidelines/monorepo-antipatterns.md +141 -0
- package/dist/agent-src/guidelines/php/api-design.md +115 -0
- package/dist/agent-src/guidelines/php/artisan-commands.md +81 -0
- package/dist/agent-src/guidelines/php/blade-ui.md +78 -0
- package/dist/agent-src/guidelines/php/controllers.md +90 -0
- package/dist/agent-src/guidelines/php/database.md +194 -0
- package/dist/agent-src/guidelines/php/eloquent.md +208 -0
- package/dist/agent-src/guidelines/php/flux.md +80 -0
- package/dist/agent-src/guidelines/php/general.md +207 -0
- package/dist/agent-src/guidelines/php/git.md +164 -0
- package/dist/agent-src/guidelines/php/jobs.md +111 -0
- package/dist/agent-src/guidelines/php/livewire.md +71 -0
- package/dist/agent-src/guidelines/php/logging.md +79 -0
- package/dist/agent-src/guidelines/php/naming.md +89 -0
- package/dist/agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
- package/dist/agent-src/guidelines/php/patterns/dtos.md +199 -0
- package/dist/agent-src/guidelines/php/patterns/events.md +67 -0
- package/dist/agent-src/guidelines/php/patterns/factory.md +53 -0
- package/dist/agent-src/guidelines/php/patterns/pipelines.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/policies.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/repositories.md +122 -0
- package/dist/agent-src/guidelines/php/patterns/service-layer.md +64 -0
- package/dist/agent-src/guidelines/php/patterns/strategy.md +247 -0
- package/dist/agent-src/guidelines/php/patterns.md +28 -0
- package/dist/agent-src/guidelines/php/performance.md +92 -0
- package/dist/agent-src/guidelines/php/php-coding-patterns.md +80 -0
- package/dist/agent-src/guidelines/php/resources.md +100 -0
- package/dist/agent-src/guidelines/php/security.md +110 -0
- package/dist/agent-src/guidelines/php/sql.md +97 -0
- package/dist/agent-src/guidelines/php/validations.md +119 -0
- package/dist/agent-src/guidelines/php/websocket.md +100 -0
- package/dist/agent-src/guidelines/prompt-templates.md +189 -0
- package/dist/agent-src/guidelines/redundancy-taxonomy.md +208 -0
- package/dist/agent-src/guidelines/wing4-handoff.md +127 -0
- package/dist/agent-src/personas/README.md +1 -1
- package/dist/agent-src/personas/_template-specialist/persona.md +1 -1
- package/dist/agent-src/personas/product-owner.md +1 -1
- package/dist/agent-src/rules/active-remediation.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/dist/agent-src/rules/ask-when-uncertain.md +2 -2
- package/dist/agent-src/rules/brand-source-of-truth.md +9 -7
- package/dist/agent-src/rules/code-comment-discipline.md +2 -2
- package/dist/agent-src/rules/code-provenance.md +1 -1
- package/dist/agent-src/rules/content-quoting-floor.md +1 -1
- package/dist/agent-src/rules/context-hygiene.md +5 -5
- package/dist/agent-src/rules/cross-source-consistency.md +1 -1
- package/dist/agent-src/rules/design-fidelity.md +36 -46
- package/dist/agent-src/rules/direct-answers.md +2 -2
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/icon-consistency.md +5 -1
- package/dist/agent-src/rules/improve-before-implement.md +1 -1
- package/dist/agent-src/rules/language-and-tone.md +3 -3
- package/dist/agent-src/rules/minimal-safe-diff.md +1 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +36 -25
- package/dist/agent-src/rules/recurring-criticism.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
- package/dist/agent-src/rules/role-mode-adherence.md +2 -2
- package/dist/agent-src/rules/security-sensitive-stop.md +1 -1
- package/dist/agent-src/rules/size-enforcement.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +2 -2
- package/dist/agent-src/rules/think-before-action.md +1 -1
- package/dist/agent-src/rules/token-efficiency.md +7 -5
- package/dist/agent-src/rules/ui-audit-gate.md +3 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -3
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
- package/dist/agent-src/skills/activation-design/SKILL.md +2 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +5 -5
- package/dist/agent-src/skills/ai-council/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +24 -3
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
- package/dist/agent-src/skills/churn-prevention/SKILL.md +2 -2
- package/dist/agent-src/skills/code-intelligence/SKILL.md +57 -1
- package/dist/agent-src/skills/code-refactoring/SKILL.md +3 -3
- package/dist/agent-src/skills/code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/comp-banding/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-moat-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -2
- package/dist/agent-src/skills/contracts-cognition/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +2 -2
- package/dist/agent-src/skills/customer-research/SKILL.md +2 -2
- package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
- package/dist/agent-src/skills/data-handling-judgment/SKILL.md +1 -1
- package/dist/agent-src/skills/deal-qualification-meddic/SKILL.md +2 -2
- package/dist/agent-src/skills/decision-record/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-review/SKILL.md +8 -8
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +22 -22
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +2 -2
- package/dist/agent-src/skills/design-review/SKILL.md +4 -4
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +17 -2
- package/dist/agent-src/skills/design-variations/SKILL.md +2 -2
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/dist/agent-src/skills/discovery-interview/SKILL.md +2 -2
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +3 -3
- package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -2
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +44 -1
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +2 -2
- package/dist/agent-src/skills/expansion-playbook/SKILL.md +2 -2
- package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/experiment-loop/references/protocol.md +1 -1
- package/dist/agent-src/skills/fe-design/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +1 -1
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +3 -3
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/forecast-accuracy/SKILL.md +2 -2
- package/dist/agent-src/skills/forecasting/SKILL.md +2 -2
- package/dist/agent-src/skills/fundraising-narrative/SKILL.md +2 -2
- package/dist/agent-src/skills/funnel-analysis/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/references/push-closes-its-loop.md +9 -0
- package/dist/agent-src/skills/gtm-launch/SKILL.md +2 -2
- package/dist/agent-src/skills/hiring-loop-design/SKILL.md +1 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +5 -5
- package/dist/agent-src/skills/humanizer/SKILL.md +1 -1
- package/dist/agent-src/skills/humanizer/data/patterns.md +1 -1
- package/dist/agent-src/skills/iconography/SKILL.md +3 -3
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +3 -3
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +6 -6
- package/dist/agent-src/skills/livewire/SKILL.md +1 -1
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/mcp-builder/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +3 -3
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +2 -2
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/onboarding-design/SKILL.md +2 -2
- package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
- package/dist/agent-src/skills/one-on-one-cadence/SKILL.md +1 -1
- package/dist/agent-src/skills/org-design/SKILL.md +1 -1
- package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +3 -3
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/php-coder/SKILL.md +1 -1
- package/dist/agent-src/skills/pipeline-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -3
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/positioning-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/privacy-review/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +3 -3
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -2
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/release-comms/SKILL.md +2 -2
- package/dist/agent-src/skills/retention-loops/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/dist/agent-src/skills/roadmap-management/references/archival.md +1 -1
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/rule-writing/SKILL.md +6 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +2 -2
- package/dist/agent-src/skills/scenario-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/references/procedure.md +1 -1
- package/dist/agent-src/skills/skill-writing/references/section-patterns.md +3 -3
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +60 -4
- package/dist/agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +1 -1
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +28 -8
- package/dist/agent-src/skills/unit-economics-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/skills/vision-articulation/SKILL.md +1 -1
- package/dist/agent-src/skills/voc-extract/SKILL.md +2 -2
- package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +1 -1
- package/dist/agent-src/skills/workspace-link/SKILL.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +6 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +2 -3
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +2 -2
- package/dist/agent-src/user-types/_template/user-type.md +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +52 -4
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/{chunk-TGIPZBCW.js → chunk-2KKXJW25.js} +22 -8
- package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
- package/dist/cli-delegate/{chunk-4FS4WRXP.js → chunk-3FKR64R5.js} +34 -6
- package/dist/cli-delegate/{chunk-J3RFNKG4.js → chunk-55ACLDUE.js} +2 -2
- package/dist/cli-delegate/{chunk-PKOBQADP.js → chunk-57PN4GYJ.js} +1 -1
- package/dist/cli-delegate/{chunk-BIXEDQPZ.js → chunk-AK6HODNQ.js} +4 -4
- package/dist/cli-delegate/{chunk-2FTMENJL.js → chunk-GYC3VRYN.js} +1 -1
- package/dist/cli-delegate/{chunk-LWTYTX6F.js → chunk-HZ52BRGG.js} +24 -18
- package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
- package/dist/cli-delegate/{chunk-I6RHFQEG.js → chunk-YUM5KURG.js} +17 -1
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_explain.js +2 -2
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +24 -16
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +3 -3
- package/dist/cli-delegate/cmd_route_explain.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +4 -14
- package/dist/cli-delegate/cmd_settings_get.js +15 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +41 -11
- 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 +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +27 -80
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +5 -7
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +4 -6
- package/dist/hooks/dispatch.js +9249 -8981
- package/dist/install/install.mjs +47 -8
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +5496 -2400
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +73 -0
- package/dist/scripts/_lib/agent_src.js +20 -0
- package/dist/scripts/_lib/guidelines_lane.js +158 -0
- package/dist/scripts/_lib/lean_projection_mode.js +108 -0
- package/dist/scripts/_lib/router_match.js +243 -0
- package/dist/scripts/_lib/rule_injection.js +216 -0
- package/dist/scripts/condense.js +22 -25
- package/dist/scripts/project_thin_rules.js +139 -19
- package/dist/server/io/yamlIO.js +125 -17
- package/dist/server/schemas/settings.js +32 -5
- package/dist/shared/settingsSurface.js +6 -1
- package/docs/MIGRATION.md +56 -0
- package/docs/contracts/settings-classes.md +48 -7
- package/docs/guidelines/abstraction-thresholds.md +35 -0
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +3 -3
- package/docs/guidelines/agent-infra/false-green.md +2 -2
- package/docs/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +1 -1
- package/docs/guidelines/design-fidelity-mechanics.md +4 -0
- package/docs/guidelines/design-fidelity-routing.md +78 -0
- package/docs/guidelines/design-reconciliation.md +172 -0
- package/docs/guidelines/gtm-handoff.md +2 -2
- package/docs/guidelines/wing4-handoff.md +2 -2
- package/llms.txt +1 -1
- package/package.json +7 -3
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
- package/src/config/agent-settings.template.yml +94 -1
- package/src/config/ci-local-parity.yml +34 -0
- package/src/config/continuity-surface.json +8 -29
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +31 -8
- package/src/config/gate-reachability-exemptions.json +1 -0
- package/src/config/gate-violation-baselines.json +3 -3
- package/src/config/hook-token-budget.json +8 -7
- package/src/config/host-injection-effect.json +2 -2
- package/src/config/pack-size-budget.json +55 -4
- package/src/config/packed-binary-manifest.json +1 -1
- package/src/config/platform-anchor.json +47 -0
- package/src/config/preamble-payload-budget.json +2 -3
- package/src/config/publish-surface.json +4 -2
- package/src/config/ratification-policy.json +7 -0
- package/src/config/routing-coverage-seed.json +9 -2
- package/src/config/rule-stub-ceilings.json +16 -9
- package/src/scripts/_cli/cmd_session_recycle.ts +2 -25
- package/src/scripts/_cli/cmd_settings_get.ts +22 -7
- package/src/scripts/_cli/handoff_sessions.ts +14 -44
- package/src/scripts/_lib/agent_settings.ts +85 -0
- package/src/scripts/_lib/agent_src.ts +21 -0
- package/src/scripts/_lib/artifact_maturity.ts +242 -0
- package/src/scripts/_lib/conformance_report.ts +403 -0
- package/src/scripts/_lib/continuity_slot.ts +295 -0
- package/src/scripts/_lib/continuity_writer.ts +312 -0
- package/src/scripts/_lib/design_system_import.ts +20 -0
- package/src/scripts/_lib/design_tolerance.ts +281 -0
- package/src/scripts/_lib/guidelines_lane.ts +164 -0
- package/src/scripts/_lib/hook_settings.ts +85 -0
- package/src/scripts/_lib/lean_projection_mode.ts +127 -0
- package/src/scripts/_lib/obligation_frequency.ts +2 -3
- package/src/scripts/_lib/packed_binary_predicate.ts +37 -0
- package/src/scripts/_lib/platform_anchor.ts +1053 -0
- package/src/scripts/_lib/ratification_artifact.ts +278 -0
- package/src/scripts/_lib/recycle_envelope_paths.ts +109 -21
- package/src/scripts/_lib/regression_neighbourhood.ts +159 -22
- package/src/scripts/_lib/security_lint.ts +23 -2
- package/src/scripts/_lib/self_repair.ts +21 -0
- package/src/scripts/_lib/session_eol.ts +44 -0
- package/src/scripts/_lib/session_index_trust.ts +387 -0
- package/src/scripts/_lib/standing_bound_ratchet.ts +220 -0
- package/src/scripts/_lib/tolerance_shadow.ts +177 -0
- package/src/scripts/_lib/vendored_grammar_upstream.ts +280 -0
- package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
- package/src/scripts/audit_mcp_tools.ts +69 -25
- package/src/scripts/autonomy_friction_traffic.ts +379 -0
- package/src/scripts/build_mcp_catalog.ts +24 -1
- package/src/scripts/check_host_tree_parity.ts +291 -0
- package/src/scripts/check_kernel_edit_ratified.ts +462 -0
- package/src/scripts/check_loss_class_declared.ts +793 -46
- package/src/scripts/check_platform_anchor.ts +390 -0
- package/src/scripts/check_preamble_payload_budget.ts +424 -7
- package/src/scripts/check_projected_rule_routes.ts +395 -0
- package/src/scripts/check_rule_projection_integrity.ts +102 -2
- package/src/scripts/ci_settle.ts +205 -5
- package/src/scripts/code_graph/build.ts +79 -0
- package/src/scripts/code_graph/cli.ts +264 -7
- package/src/scripts/code_graph/detect.ts +38 -0
- package/src/scripts/code_graph/query.ts +25 -2
- package/src/scripts/code_graph/sqlite_store.ts +16 -1
- package/src/scripts/code_graph/types.ts +52 -3
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +590 -0
- package/src/scripts/condense.ts +22 -26
- package/src/scripts/generate_host_cost_table.ts +354 -0
- package/src/scripts/handoff_context_hook.ts +39 -1
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +59 -28
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +182 -16
- package/src/scripts/hooks/category_a.ts +1 -1
- package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
- package/src/scripts/hooks/code_graph_context_hook.ts +7 -18
- package/src/scripts/hooks/push_settle_hook.ts +3 -2
- package/src/scripts/hooks/rule_inject_hook.ts +107 -20
- package/src/scripts/hooks/session_eol_hook.ts +177 -145
- package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
- package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
- package/src/scripts/hot_context_hook.ts +103 -408
- package/src/scripts/lint_evidence_artifacts.ts +1 -0
- package/src/scripts/lint_knowledge_scale.ts +0 -26
- package/src/scripts/lint_roadmap_blockers.ts +164 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +152 -2
- package/src/scripts/mcp_server/graph_tools.ts +294 -0
- package/src/scripts/mcp_server/path_util.ts +31 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +7 -1
- package/src/scripts/mcp_server/tools.ts +3 -13
- package/src/scripts/memory_lookup.ts +9 -9
- package/src/scripts/model_rule_injection.ts +61 -4
- package/src/scripts/project_thin_rules.ts +149 -16
- package/src/scripts/report_standing_payload_by_host.ts +650 -0
- package/src/scripts/schemas/agent-settings.schema.json +7 -1
- package/src/scripts/session_memory_index.ts +86 -8
- package/src/scripts/sync_agent_settings.ts +270 -10
- package/src/server/io/yamlIO.ts +127 -17
- package/src/server/schemas/settings.ts +45 -6
- package/src/shared/settingsSurface.ts +13 -2
- package/src/templates/compact-instructions.md +8 -3
- package/src/vendor/grammars/README.md +27 -2
- package/dist/agent-src/commands/chat-history/import.md +0 -170
- package/dist/agent-src/commands/chat-history.md +0 -63
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Emphasis budget
|
|
2
|
+
|
|
3
|
+
Authoring guideline. **This is a review-time discipline, NOT a merge-blocking
|
|
4
|
+
linter** — there is no CI gate; PR review owns the judgment.
|
|
5
|
+
|
|
6
|
+
## The principle
|
|
7
|
+
|
|
8
|
+
Emphasis is a currency, and inflation debases it. Reserve the loud channels —
|
|
9
|
+
ALL-CAPS, `## Iron Law` fences, spaced repetition of the same imperative — for
|
|
10
|
+
**asymmetric, irreversible harm**: data loss, credential/secret exposure, a
|
|
11
|
+
safety floor, a legal/compliance breach. When everything shouts, nothing does:
|
|
12
|
+
an over-emphasized doc trains the reader to skim past the caps, so the one caps
|
|
13
|
+
line that guards a `DROP TABLE` loses its signal.
|
|
14
|
+
|
|
15
|
+
## The discipline
|
|
16
|
+
|
|
17
|
+
When you add emphasis, be able to answer — in the artifact or the PR — two
|
|
18
|
+
questions:
|
|
19
|
+
|
|
20
|
+
1. **What specific harm does this prevent?** Name it (not "this is
|
|
21
|
+
important" — *what* goes wrong, to *whom*, how badly).
|
|
22
|
+
2. **Why is post-hoc correction insufficient?** Emphasis is justified when the
|
|
23
|
+
harm is irreversible or asymmetric (a wrong send/delete/charge can't be
|
|
24
|
+
taken back). If a normal-weight sentence + a later fix would do, use normal
|
|
25
|
+
weight.
|
|
26
|
+
|
|
27
|
+
If you cannot answer both, down-weight to plain prose.
|
|
28
|
+
|
|
29
|
+
## Why not a linter
|
|
30
|
+
|
|
31
|
+
A mechanical caps-quota is unenforceable — semantic substitution ("Critically:
|
|
32
|
+
never…", bold, block quotes) defeats a caps count while keeping the shout — and
|
|
33
|
+
it blocks ready work on a cosmetic metric. The Iron-Law *count* is also a
|
|
34
|
+
denominator artifact: most existing Iron Laws already guard data-loss /
|
|
35
|
+
credential / safety domains, so the raw number is not evidence of inflation.
|
|
36
|
+
Judgment at review time, keyed to the harm-asymmetry test above, is the control.
|
|
37
|
+
|
|
38
|
+
## Overlap (why a separate guideline)
|
|
39
|
+
|
|
40
|
+
Distinct from [`preservation-guard`](../../rules/preservation-guard.md)
|
|
41
|
+
(preserve existing emphasis through a transform — this governs *adding* it),
|
|
42
|
+
[`size-enforcement`](../../rules/size-enforcement.md) (line budgets, not
|
|
43
|
+
emphasis weight), and [`token-budget-discipline`](../../rules/token-budget-discipline.md)
|
|
44
|
+
(load cost, not signal-to-noise). None owns the emphasis-rationing judgment;
|
|
45
|
+
this guideline does.
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# Engineering Memory Data Format
|
|
2
|
+
|
|
3
|
+
Schema and conventions for the four project-local YAML files that
|
|
4
|
+
extend the memory layer beyond `ownership-map` and
|
|
5
|
+
`historical-bug-patterns` (those are covered in
|
|
6
|
+
[`review-routing-data-format`](review-routing-data-format.md)).
|
|
7
|
+
|
|
8
|
+
All four files are **optional** and live in the consumer repository —
|
|
9
|
+
never in package-shipped artifacts. Absence is handled gracefully:
|
|
10
|
+
consulting skills fall through to their generic behaviour.
|
|
11
|
+
|
|
12
|
+
This guideline replaces the *"one guideline per schema"* plan from
|
|
13
|
+
`road-to-engineering-memory.md` with a single consolidated reference,
|
|
14
|
+
matching the existing pattern established by `review-routing-data-format`.
|
|
15
|
+
|
|
16
|
+
## File locations
|
|
17
|
+
|
|
18
|
+
Each schema lives under `agents/memory/<type>/<hash>.yml` (content-addressed,
|
|
19
|
+
merge-safe) **or** in a single `agents/memory/<type>.yml` file for projects
|
|
20
|
+
that prefer one file per type.
|
|
21
|
+
|
|
22
|
+
| Type | Single-file path | Sharded path |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Domain invariants | `agents/memory/domain-invariants.yml` | `agents/memory/domain-invariants/<hash>.yml` |
|
|
25
|
+
| Incident learnings | `agents/memory/incident-learnings.yml` | `agents/memory/incident-learnings/<hash>.yml` |
|
|
26
|
+
| Product rules | `agents/memory/product-rules.yml` | `agents/memory/product-rules/<hash>.yml` |
|
|
27
|
+
|
|
28
|
+
Choose one layout per type and stick with it. `scripts/check_memory.ts`
|
|
29
|
+
warns if both exist for the same type.
|
|
30
|
+
|
|
31
|
+
## Shared frontmatter fields
|
|
32
|
+
|
|
33
|
+
Every entry across all four types MUST carry these keys. The gate
|
|
34
|
+
rejects entries missing any required field.
|
|
35
|
+
|
|
36
|
+
| Key | Required | Type | Notes |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| `id` | yes | kebab-case slug | unique within the type |
|
|
39
|
+
| `status` | yes | `active` \| `deprecated` \| `archived` | lifecycle |
|
|
40
|
+
| `confidence` | yes | `low` \| `medium` \| `high` | reader weights accordingly |
|
|
41
|
+
| `source` | yes | list of URLs / ADR refs | ≥1 entry |
|
|
42
|
+
| `owner` | yes | team slug | who keeps this entry fresh |
|
|
43
|
+
| `last_validated` | yes | ISO date | stale check per type |
|
|
44
|
+
| `review_after_days` | yes | integer | triggers staleness warning |
|
|
45
|
+
| `priority` | no | `critical` \| `normal` \| `low` | tier-0 surfacing; defaults to `normal` |
|
|
46
|
+
| `ts_week` | no | ISO-week string `YYYY-Www` | promotion week stamp; convention, not enforced |
|
|
47
|
+
| `verified_at_commit` | no | 7-40 char lowercase hex | the tree revision the entry was **semantically verified against** — not the commit that last edited the YAML |
|
|
48
|
+
| `semantic_verdict` | no | `still-true` \| `stale` \| `unverifiable` | a recorded **human** reading of the entry against that tree |
|
|
49
|
+
| `semantic_verdict_at` | no | ISO date | when that reading was taken |
|
|
50
|
+
|
|
51
|
+
### Verification stamps (`verified_at_commit` / `semantic_verdict`)
|
|
52
|
+
|
|
53
|
+
A date alone cannot be tied to a tree state, and that gap is not theoretical:
|
|
54
|
+
spike cf02 measured the curated store at **21.5 % stale against the tree** while
|
|
55
|
+
the shipped instrument reported **0.0 %**, because all 107 entries carried one
|
|
56
|
+
`last_validated` and one 365-day window, so the check could not fire before
|
|
57
|
+
2027. `verified_at_commit` is what makes a stamp falsifiable — with it, a reader
|
|
58
|
+
can ask whether anything the entry cites has changed since it was last read.
|
|
59
|
+
|
|
60
|
+
`semantic_verdict` records the outcome of that read. It is **human-written**,
|
|
61
|
+
deliberately: no mechanical signal predicts it. Pointer liveness was built and
|
|
62
|
+
measured for exactly this job and came in at 0.00x lift over the base rate
|
|
63
|
+
(cf04) — a dead citation is documentation debt, not a false claim.
|
|
64
|
+
|
|
65
|
+
A `stale` verdict demotes the entry immediately, regardless of age
|
|
66
|
+
(`memory_eviction.ts`, "contradiction outranks retention"). An `unverifiable`
|
|
67
|
+
entry — one about an external system, a past event, or a recorded preference —
|
|
68
|
+
is surfaced on age but never quarantined on it, because the tree can never
|
|
69
|
+
discharge the reason.
|
|
70
|
+
|
|
71
|
+
### Priority semantics (`critical` / `normal` / `low`)
|
|
72
|
+
|
|
73
|
+
The `priority` field controls how aggressively `/memory:load` surfaces
|
|
74
|
+
an entry. The three-tier enum is intentional — see
|
|
75
|
+
an internal roadmap (local-only) § B2 and the Phase 2 council brief
|
|
76
|
+
for why a fourth `high` tier was rejected.
|
|
77
|
+
|
|
78
|
+
| Value | Meaning | Reader behaviour |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| `critical` | Tier-0 — always surface regardless of query | `/memory:load` injects on every load, irrespective of key/query match |
|
|
81
|
+
| `normal` (default) | Standard query-matched retrieval | Surfaced when the lookup key/query matches the entry |
|
|
82
|
+
| `low` | Background — only surface on explicit full load | Skipped by query-matched retrieval; visible only via `/memory:load --type` full sweep |
|
|
83
|
+
|
|
84
|
+
**Tier-0 governance.**
|
|
85
|
+
`scripts/check_memory.ts` enforces two soft guards on `critical` entries:
|
|
86
|
+
|
|
87
|
+
- **Critical-stale warning** — a `priority: critical` entry whose
|
|
88
|
+
`last_validated` is older than 90 days emits a `critical-stale` warning
|
|
89
|
+
during validation (still exit 0; the curator decides whether to
|
|
90
|
+
re-validate or downgrade).
|
|
91
|
+
- **Tier-0 inflation warning** — when a memory type accumulates more
|
|
92
|
+
than 10 active `critical` entries, the validator warns. The intent is
|
|
93
|
+
to keep the always-surface slice small enough to remain signal, not to
|
|
94
|
+
block writes; raise the threshold deliberately if the project's domain
|
|
95
|
+
genuinely needs more.
|
|
96
|
+
|
|
97
|
+
Both are warnings, never errors. The curator stays in charge.
|
|
98
|
+
|
|
99
|
+
### Temporal jitter (`ts_week`)
|
|
100
|
+
|
|
101
|
+
`ts_week` stamps a curated entry with the **ISO week** it was promoted
|
|
102
|
+
(`YYYY-Www`, e.g. `2026-W17`). It is optional and **convention-only** —
|
|
103
|
+
the validator does not require it and does not reject entries without
|
|
104
|
+
it. Promotion tooling (`/memory:promote`) writes it; manual edits are
|
|
105
|
+
free to set or omit.
|
|
106
|
+
|
|
107
|
+
**Why ISO-week, not date-time.** Curated YAML lives in the repo and is
|
|
108
|
+
reviewable by anyone with access. A precise timestamp on every entry
|
|
109
|
+
leaks session timing — "this rule appeared Tuesday 3pm" correlates with
|
|
110
|
+
"the incident hit Tuesday 3pm". ISO-week granularity preserves long-
|
|
111
|
+
term ordering (useful for audit) while removing intra-week inference.
|
|
112
|
+
|
|
113
|
+
**When to use it.** Stamp on every promotion. Do not retroactively
|
|
114
|
+
backfill — empty `ts_week` for older entries is fine and a deliberate
|
|
115
|
+
non-signal.
|
|
116
|
+
|
|
117
|
+
**Privacy carve-outs.** Highly sensitive entries (incident-learnings
|
|
118
|
+
tied to active investigations) may omit `ts_week` entirely; the field
|
|
119
|
+
is not a forensic record.
|
|
120
|
+
|
|
121
|
+
## Type-specific required fields
|
|
122
|
+
|
|
123
|
+
Each file also carries the template-specific body. See the example
|
|
124
|
+
templates for the full shape:
|
|
125
|
+
|
|
126
|
+
- [`domain-invariants.example.yml`](../../../src/agent-src/templates/agents/memory/domain-invariants.example.yml)
|
|
127
|
+
adds `rule`, `boundary`, `scope.paths`, `violation_contract`.
|
|
128
|
+
- [`incident-learnings.example.yml`](../../../src/agent-src/templates/agents/memory/incident-learnings.example.yml)
|
|
129
|
+
adds `pattern`, `trigger_conditions`, `consequence`, `guardrail`,
|
|
130
|
+
`enforcement`, `severity`.
|
|
131
|
+
- [`product-rules.example.yml`](../../../src/agent-src/templates/agents/memory/product-rules.example.yml)
|
|
132
|
+
adds `rule`, `applies_to`, `enforcement`, `error_contract`, `version`.
|
|
133
|
+
|
|
134
|
+
## Ownership (who writes, who reads)
|
|
135
|
+
|
|
136
|
+
| Type | Writer | Reader (skill/role) | Expiry |
|
|
137
|
+
|---|---|---|---|
|
|
138
|
+
| Domain invariants | senior engineer / architect | `developer-like-execution`, `php-coder`, `laravel` | reviewed at major version bump |
|
|
139
|
+
| Architecture decisions | decision author at ADR time | `feature-plan`, `api-design`, `blast-radius-analyzer` | `deprecated` on reversal; never deleted |
|
|
140
|
+
| Incident learnings | incident commander post-resolution | `Incident` role, `bug-investigate`, `bug-analyzer` | archived when guardrail lands + verified in prod |
|
|
141
|
+
| Product rules | PO or tech lead post-decision | `PO` role, `validate-feature-fit`, `laravel-validation` | version-stamped; old versions archived |
|
|
142
|
+
|
|
143
|
+
## Redaction rules (hard)
|
|
144
|
+
|
|
145
|
+
Enforced by `scripts/check_memory.ts`. Reject on match:
|
|
146
|
+
|
|
147
|
+
- **No secrets.** API keys, tokens, credentials, private URLs with
|
|
148
|
+
credentials, internal hostnames that expose infrastructure.
|
|
149
|
+
- **No customer names.** ACME Corp, specific account IDs, domain
|
|
150
|
+
names of real customers. Rephrase to the pattern.
|
|
151
|
+
- **No PII.** Names, emails, phone numbers, IP addresses tied to
|
|
152
|
+
real users. Incident-learnings is tempting here — resist.
|
|
153
|
+
- **No ticket IDs that identify the incident** in
|
|
154
|
+
`incident-learnings.yml`. Link the guardrail PR instead.
|
|
155
|
+
|
|
156
|
+
## Reader contract
|
|
157
|
+
|
|
158
|
+
Consuming skills read an entry and expose its `status` + `confidence`
|
|
159
|
+
to the agent. A `confidence: low` domain invariant informs, it does not
|
|
160
|
+
dictate. A `confidence: high` incident learning blocks the generation
|
|
161
|
+
path if the guardrail is absent.
|
|
162
|
+
|
|
163
|
+
## Staleness
|
|
164
|
+
|
|
165
|
+
`check_memory.ts` runs weekly (not per-PR). It reports entries where
|
|
166
|
+
`(today - last_validated) > review_after_days`. Stale entries stay
|
|
167
|
+
active — the report is informational, not a gate.
|
|
168
|
+
|
|
169
|
+
**The window is per store, and the numbers are derived rather than chosen.**
|
|
170
|
+
cf02 measured decay over the same 39-day span in three stores:
|
|
171
|
+
`historical-patterns` 45.8 %, `incident-learnings` 17.6 %, `product-rules`
|
|
172
|
+
13.6 % — a 3.4× spread that one uniform window cannot serve. Extrapolated
|
|
173
|
+
linearly, the days each store needs to reach the 10 % threshold are 9, 22 and
|
|
174
|
+
29. The shipped windows are **30 / 90 / 90**: the same ratio, rounded to
|
|
175
|
+
operational units, because cf02 also showed decay arrives in *batches* (two
|
|
176
|
+
upstream changes caused 11 of 22 stale entries), which makes a linear day count
|
|
177
|
+
the wrong shape for a deadline even though it is the right shape for a ratio.
|
|
178
|
+
|
|
179
|
+
## Eviction ladder
|
|
180
|
+
|
|
181
|
+
`memory_eviction.ts` acts on two signals and no others:
|
|
182
|
+
|
|
183
|
+
| State | Trigger | Effect |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `due` | past `last_validated + review_after_days` | surfaced, stays in the store |
|
|
186
|
+
| `quarantine` | `semantic_verdict: stale`, **or** past two windows unverified | moved to `agents/memory-quarantine/<type>.yml`, no longer injected, still readable |
|
|
187
|
+
| `delete` | three windows while in quarantine | removed |
|
|
188
|
+
|
|
189
|
+
Quarantine is a **move between tracked files**, never an in-place status flip:
|
|
190
|
+
an entry has to leave the injected store to stop being read as fact, and it has
|
|
191
|
+
to stay readable to be appealable. Re-verify an entry and it returns.
|
|
192
|
+
|
|
193
|
+
Dry-run by default; `--apply` is the only path that writes.
|
|
194
|
+
|
|
195
|
+
## Anti-patterns
|
|
196
|
+
|
|
197
|
+
- **Do NOT** merge `ownership-map.yml` semantics into these files.
|
|
198
|
+
Ownership is a separate concern; mixing them doubles the staleness
|
|
199
|
+
surface.
|
|
200
|
+
- **Do NOT** generate entries via LLM in bulk. Curated is the point.
|
|
201
|
+
The point of a `confidence: high` entry is human-verified claim,
|
|
202
|
+
not high-volume output.
|
|
203
|
+
- **Do NOT** delete `deprecated` or `archived` entries. History is
|
|
204
|
+
the value of memory; deletion is amnesia.
|
|
205
|
+
- **Do NOT** ship this file pre-populated. Each consumer starts
|
|
206
|
+
empty and fills as decisions and incidents accumulate.
|
|
207
|
+
|
|
208
|
+
## See also
|
|
209
|
+
|
|
210
|
+
- [`review-routing-data-format.md`](review-routing-data-format.md) — sibling format for ownership + bug patterns
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Evaluator independence — enforcement reach and its correction history
|
|
2
|
+
|
|
3
|
+
> What the `evidence-independence` guard actually does per branch, per host; the
|
|
4
|
+
> limits that were measured rather than assumed; and the two corrections this
|
|
5
|
+
> material has taken. The rule keeps the verdict — this page carries the argument.
|
|
6
|
+
|
|
7
|
+
_Origin: migrated from [`evaluator-independence`](../../rules/evaluator-independence.md)
|
|
8
|
+
§ *Enforcement — honest scope* under the P4 pattern
|
|
9
|
+
(`road-to-standing-payload-diet` step 1.3). Nothing here is new; the rule was
|
|
10
|
+
re-sending all of it on every session and every spawn, and only the verdict has
|
|
11
|
+
to be._
|
|
12
|
+
|
|
13
|
+
## The two branches
|
|
14
|
+
|
|
15
|
+
[`evidence_independence.ts`](../../../src/scripts/hooks/evidence_independence.ts) is a
|
|
16
|
+
`pre_tool_use` concern, and its two branches do **different** things —
|
|
17
|
+
**corrected 2026-08-23**, because this paragraph claimed both of them block:
|
|
18
|
+
|
|
19
|
+
- **Item 1 BLOCKS.** A dispatch whose prompt carries a pre-loaded verdict returns
|
|
20
|
+
`EXIT_BLOCK` (`:253`). Mechanically enforced, on the one host that honours a deny.
|
|
21
|
+
- **Item 4 WARNS and does not block.** A second self-scoped evaluation dispatch in the
|
|
22
|
+
same turn returns **`EXIT_ALLOW`** with `decision: "warn"` (`:301-317`), and so does
|
|
23
|
+
the first (`:319-324`). That is deliberate, and the code says why at `:296-300`: the
|
|
24
|
+
internal ladder's `2 = warn` is read as a hard **deny** by this host's native
|
|
25
|
+
PreToolUse contract, *"which is the defect that made an advisory guard a hard deny
|
|
26
|
+
once already"*. Exiting 2 here would have kept a legitimate fan-out blocked while
|
|
27
|
+
claiming to warn.
|
|
28
|
+
|
|
29
|
+
So the rule's own turn-budget clause is **advisory**, not enforced. It reads the prompt
|
|
30
|
+
the agent is about to send, so item 1 is mechanically enforced and item 4 is surfaced.
|
|
31
|
+
|
|
32
|
+
The manifest's `severity: blocking` for `evidence-independence`
|
|
33
|
+
(`src/scripts/hook_manifest.yaml:380-385`) is a **third** reading and it is true of the
|
|
34
|
+
item-1 path only: a severity declares the concern, never every branch inside it. A
|
|
35
|
+
reader taking it as "both branches deny" reaches the claim this paragraph used to
|
|
36
|
+
make.
|
|
37
|
+
|
|
38
|
+
Three limits, stated because they were measured. The pre-loaded-verdict list is
|
|
39
|
+
a **phrase list**, so a paraphrase evades it — it catches recurrences of known
|
|
40
|
+
steering wording, not steering as such. The turn boundary is the
|
|
41
|
+
authorization ledger's `detected_at` stamp, because the envelope carries no turn
|
|
42
|
+
id; with no ledger yet, the counter falls back to session scope. And the guard
|
|
43
|
+
does not deny everywhere it exists: `pre_tool_use` is **bound** on three hosts —
|
|
44
|
+
augment, claude, cowork — and only `claude` honours the deny. Everywhere else,
|
|
45
|
+
augment and cowork included, items 1 and 4 join 2 and 3 as model-carried.
|
|
46
|
+
`agent-config hooks:status` answers it for the host you are on right now.
|
|
47
|
+
|
|
48
|
+
**Corrected 2026-08-17 — this paragraph was wrong on both sides of the line it
|
|
49
|
+
drew.** It said `pre_tool_use` "exists on three hosts" and that the guard has
|
|
50
|
+
"nowhere to bind" on the other five. Neither half survived a re-read of the
|
|
51
|
+
tree. **Downward:** the manifest's own `native_event_aliases` table already maps
|
|
52
|
+
`preToolUse` (cursor), `PreToolUse` (cline) and `BeforeTool` (gemini) onto
|
|
53
|
+
`pre_tool_use`, so there the guard is **unbound, not unbindable**; only windsurf
|
|
54
|
+
and copilot carry no pre-tool alias row at all. **Upward, and worse:**
|
|
55
|
+
`host_semantics.ts` certifies **claude alone**, and the augment and cowork
|
|
56
|
+
trampolines discard dispatcher output and `exit 0` unconditionally — so on two
|
|
57
|
+
of the three "enforcing" hosts this guard runs and is then ignored. Nor may the
|
|
58
|
+
inverse be asserted downward: nothing records whether an unbound host's
|
|
59
|
+
pre-tool event can *deny*, and `severity: blocking` is a property of the concern
|
|
60
|
+
rather than of the host. The four states are tabulated once in
|
|
61
|
+
[`hook-architecture-v1 § Which hosts carry pre_tool_use`](../../contracts/hook-architecture-v1.md).
|
|
62
|
+
|
|
63
|
+
Stated at this length because this rule exists over a case where a process that
|
|
64
|
+
*looked* followed produced fabricated evidence. An unbacked reason for a real
|
|
65
|
+
gap and an unmeasured claim of enforcement are the same failure in a smaller
|
|
66
|
+
font, and this paragraph had shipped one of each. Note also what the frequency
|
|
67
|
+
join actually reports: `check_enforcement_coverage.ts` skips `fallback_only`
|
|
68
|
+
platforms, so its gap set is **four** — cursor, cline, windsurf, gemini — never
|
|
69
|
+
copilot, which is excluded by declaration rather than measured as a gap.
|
|
70
|
+
|
|
71
|
+
**Item 2 — an honestly chosen scope — is not enforced by anything.** A narrowed scope
|
|
72
|
+
is not decidable from the prompt alone.
|
|
73
|
+
|
|
74
|
+
**Item 3 — recording the prompt with the verdict — IS enforced**, and this rule said
|
|
75
|
+
otherwise until 2026-08-23:
|
|
76
|
+
[`check_review_prompt_binding.ts`](../../../src/scripts/check_review_prompt_binding.ts)
|
|
77
|
+
binds a verdict to the prompt it was produced from. Its own header states the limit that
|
|
78
|
+
matters, so citing it does not oversell it: **omission beats substitution** — simply not
|
|
79
|
+
committing `<slug>.review-input/prompt.md` drops the round out of the checkable set with
|
|
80
|
+
**no finding and no signal**, because an artefact without a package is deliberately out
|
|
81
|
+
of scope. Measured on the corpus it shipped against, **11 of 19** artefacts already
|
|
82
|
+
carry a `prompt_hash` with no package, so the bypassed state is the historical norm and
|
|
83
|
+
is indistinguishable from it.
|
|
84
|
+
They are stated here as obligations and are model-carried. Saying so is the
|
|
85
|
+
point: this rule exists because a process that *looked* followed produced
|
|
86
|
+
fabricated evidence, and claiming coverage it does not have would repeat that.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
## See also
|
|
90
|
+
|
|
91
|
+
- [`evaluator-independence`](../../rules/evaluator-independence.md) — the rule this page carries the argument for.
|
|
92
|
+
- [`hook-architecture-v1 § Which hosts carry pre_tool_use`](../../contracts/hook-architecture-v1.md) — the four host states, tabulated once.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# The existence question — its verdict set, its cost, and why it is not TDD
|
|
2
|
+
|
|
3
|
+
Depth for [`improve-before-implement`](../../rules/improve-before-implement.md)
|
|
4
|
+
§ The solution-size ladder, migrated out of
|
|
5
|
+
[`agent-interaction-and-decision-quality`](agent-interaction-and-decision-quality.md)
|
|
6
|
+
§ 8b.
|
|
7
|
+
|
|
8
|
+
**Why it moved.** That guideline crossed `check_depth_budget`'s 16,000-character
|
|
9
|
+
ceiling when this depth landed in it, becoming a fifth over-ceiling file against
|
|
10
|
+
a baseline of four. The ratchet turns one way, so the fix is extraction rather
|
|
11
|
+
than a raised baseline — and these three sections are the natural unit: they
|
|
12
|
+
answer what the ladder RETURNS, what it costs, and which cluster it does not
|
|
13
|
+
belong to, none of which the surrounding interaction guideline needs in order to
|
|
14
|
+
be read.
|
|
15
|
+
|
|
16
|
+
The ladder itself — the rungs, the shape axis and their precedence — stays at
|
|
17
|
+
§ 8b-ladder / 8b-shape / 8b-precedence, because the rule routes there.
|
|
18
|
+
|
|
19
|
+
#### 8b-verdict. The verdict set, and what `new` owes
|
|
20
|
+
|
|
21
|
+
The ladder's answer is a **named verdict, never a yes/no**:
|
|
22
|
+
|
|
23
|
+
| verdict | meaning |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `reuse` | the existing thing carries the requirement as-is |
|
|
26
|
+
| `extract` | it carries it once a shared part is pulled out |
|
|
27
|
+
| `refactor` | it carries it once reshaped, same responsibility |
|
|
28
|
+
| `extend` | it carries it with an added, non-distorting case |
|
|
29
|
+
| `migrate` | it should carry it, and the move is the work |
|
|
30
|
+
| `new` | nothing carries it, and the search that establishes that is the evidence |
|
|
31
|
+
|
|
32
|
+
**`new` owes negative evidence** — the closest existing candidate **by name and
|
|
33
|
+
path**, and why it does not carry the requirement. *"Nothing similar exists"*
|
|
34
|
+
naming no candidate is an unrun search, not an answer, and it is the shape this
|
|
35
|
+
verdict set exists to make visible.
|
|
36
|
+
|
|
37
|
+
Two clauses hold the set honest, and both cut against reading it as a ranking:
|
|
38
|
+
|
|
39
|
+
- **The order is a thinking preference, not a ranking.** A `new` after a real
|
|
40
|
+
search beats an `extend` that bends a helper out of shape. Preferring reuse is
|
|
41
|
+
not preferring reuse *at any cost*.
|
|
42
|
+
- **Textual similarity alone is never grounds for an abstraction.** Two blocks
|
|
43
|
+
that read alike and change for different reasons are two blocks — the
|
|
44
|
+
per-class bars are in [`abstraction-thresholds`](../abstraction-thresholds.md).
|
|
45
|
+
|
|
46
|
+
**Reach the verdict with the engine, not a fresh grep protocol.** `agent-config
|
|
47
|
+
code-graph query` and `code-graph affected`;
|
|
48
|
+
[`external-code-graph-interop`](../../rules/external-code-graph-interop.md)
|
|
49
|
+
already mandates query-before-grep and names grep the fallback, so a second
|
|
50
|
+
search specification here would contradict it rather than add to it.
|
|
51
|
+
|
|
52
|
+
#### 8b-cheap. Why the exclusions buy the checks and never the question
|
|
53
|
+
|
|
54
|
+
The rule excludes bug fixes, config changes, user-fenced tasks and trivial
|
|
55
|
+
changes from the **three heavy checks**. The one cheap question — *does this
|
|
56
|
+
already exist in the tree* — fires on all four rows anyway.
|
|
57
|
+
|
|
58
|
+
The reason is empirical rather than tidy: **bug fixes and renames re-add an
|
|
59
|
+
existing helper more often than features do**, because the author is inside one
|
|
60
|
+
file and reaching for something small. Switching the reuse rung off there
|
|
61
|
+
switches it off where it pays most.
|
|
62
|
+
|
|
63
|
+
Cheap means cheap, on the [`ui-audit-gate`](../../rules/ui-audit-gate.md)
|
|
64
|
+
precedent: one `code-graph query`, one named verdict, no interview.
|
|
65
|
+
|
|
66
|
+
**The skip is decidable from the diff alone** — ≤ 1 file, ≤ 5 changed lines, no
|
|
67
|
+
new symbol, no new dependency. A typo satisfies all four with no state to
|
|
68
|
+
consult; an added symbol never does.
|
|
69
|
+
|
|
70
|
+
#### 8b-routing. Why this is not routed through the TDD cluster
|
|
71
|
+
|
|
72
|
+
Two source proposals put the existence question in `/tdd`'s design mode, as the
|
|
73
|
+
one point every behaviour passes through. **It cannot live there, and the reason
|
|
74
|
+
is delivery rather than design:**
|
|
75
|
+
`src/domains/engineering-base/tdd/command.md` carries `visibility: internal` and
|
|
76
|
+
`disable-model-invocation: true`, so **a consumer cannot reach it.** The routing
|
|
77
|
+
is undeliverable, not merely unwanted.
|
|
78
|
+
|
|
79
|
+
Recorded here so the next author does not re-derive the proposal and re-propose
|
|
80
|
+
it.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Failure signatures — symptom → likely cause → first check
|
|
2
|
+
|
|
3
|
+
A file-first lookup the [`systematic-debugging`](../../skills/systematic-debugging/SKILL.md)
|
|
4
|
+
skill reads when a failure shows a recognisable signature. It does **not**
|
|
5
|
+
replace the 6-phase loop — it shortcuts **Phase 2 (Isolate)** by pointing at the
|
|
6
|
+
*first* check for a known shape, so you stop guessing and start with the highest-
|
|
7
|
+
probability cause.
|
|
8
|
+
|
|
9
|
+
> File-first by design (council 2026-06-15): kept as a reference table the skill
|
|
10
|
+
> reads, **not** hardcoded into the skill body — so it grows without bloating the
|
|
11
|
+
> always-loaded skill and stays one edit away from current.
|
|
12
|
+
|
|
13
|
+
## Lookup
|
|
14
|
+
|
|
15
|
+
| ID | Signature (what you see) | Likely cause | First check |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| `tool-loop` | **Tool/agent loop** — same tool called >2× with near-identical args, no progress | Missing stop condition; reading without acting; ambiguous state | Stop. State the hypothesis in one line. Act or ask — do not re-read. (`context-hygiene` 15/25 rule) |
|
|
18
|
+
| `rate-limited` | **HTTP 429 / "rate limit" / "quota"** | Too-frequent calls; shared quota; missing backoff | Inspect response headers (`Retry-After`, `X-RateLimit-*`); add exponential backoff; check if a loop is firing the calls |
|
|
19
|
+
| `connection-refused` | **`ECONNREFUSED` / connection refused** | Service not up; wrong host/port; container not started | Is the service running? (`docker compose ps`, health endpoint); is the port right? (`lsof -i :PORT`); is it bound to `127.0.0.1` vs `0.0.0.0`? |
|
|
20
|
+
| `path-not-found` | **`ENOENT` / "no such file or directory"** | Wrong cwd; path relative vs absolute; file not generated yet | Print the *resolved absolute* path; check cwd; confirm a prior step actually wrote the file |
|
|
21
|
+
| `hang` | **Timeout / hang** | Blocking I/O; deadlock; awaiting a condition that never holds | What is it waiting on? Add a log right before the blocking call; bound the wait; check for a missing `await`/`return` |
|
|
22
|
+
| `out-of-memory` | **`OOM` / killed (137) / heap out of memory** | Unbounded collection; loading all rows; leak in a loop | What grows per iteration? Stream/paginate instead of loading all; check `--max-old-space-size` only after finding the growth |
|
|
23
|
+
| `permission-denied` | **`EACCES` / permission denied** | Wrong file mode; running as wrong user; read-only mount | `ls -l` the target; check the process user; is the path a read-only volume? |
|
|
24
|
+
| `order-dependent-test` | **Flaky test (passes alone, fails in suite)** | Shared state; order dependence; real clock/random; unawaited async | Run the test in isolation vs in suite; look for shared fixtures, global state, `Date.now()`/random, missing `await` |
|
|
25
|
+
| `local-ci-drift` | **Works locally, fails in CI** | Env/config drift; missing service; absent secret; path/case sensitivity | Diff env (`printenv`); is the service/secret present in CI? Linux is case-sensitive — check filename casing |
|
|
26
|
+
| `race` | **Intermittent / "sometimes"** | Race; timing; network; non-deterministic order | Reproduce with condition-based waiting, not fixed sleeps (`systematic-debugging` § Condition-based waiting); log timestamps |
|
|
27
|
+
| `stale-capability-claim` | **Budget exhausted plus repeated attempts at a tool that is not available** | A capability the session claimed for itself instead of resolving — the council, a hook slot, a subagent primitive, an MCP server assumed present | Ask the live verb, not the tree: `agent-config hooks:status` for slot bindings, `agent-config routing:doctor` for per-field capability **provenance** (`registry` / `live-probe` / `default`), `agent-config council:status` for council availability. A `false` from `default` records that nobody answered, not that the host cannot |
|
|
28
|
+
|
|
29
|
+
### Naming convention for IDs
|
|
30
|
+
|
|
31
|
+
An id is a short kebab handle so a signature can be **cited by name** — the
|
|
32
|
+
first column was prose, so nothing could reference a row.
|
|
33
|
+
|
|
34
|
+
One rule governs new ids: **where a row's signature is a stable string the
|
|
35
|
+
tooling already prints, the id is that string verbatim** rather than a kebab
|
|
36
|
+
synonym. `skill_linter.ts` emits a closed set of `Issue` codes —
|
|
37
|
+
`missing_section`, `missing_conditional_section`, `invalid_execution_handler` —
|
|
38
|
+
and a row about one of those is looked up by the code the reader just saw in the
|
|
39
|
+
output. No current row is of that class; the convention is stated for the next
|
|
40
|
+
one, so the table does not accumulate two names for the same failure.
|
|
41
|
+
|
|
42
|
+
## Discrimination drills
|
|
43
|
+
|
|
44
|
+
A row's "first check" is only worth following if the documented signature is what
|
|
45
|
+
actually appears. Each drill breaks the named layer and asserts the documented
|
|
46
|
+
symptom — run it once when you doubt a row, or when adding one. They are text a
|
|
47
|
+
human runs; nothing here is a CI gate.
|
|
48
|
+
|
|
49
|
+
| ID | Drill — break this, expect that |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `tool-loop` | Ask for a fact that is genuinely absent from the tree (a config key nothing defines). Expect repeated searches with shrinking variation and no edit — that shape, not an error message, is the signature. |
|
|
52
|
+
| `rate-limited` | Fire the provider's own rate limit with a tight loop against a cheap endpoint. Expect `429` **plus** `Retry-After`; a `429` with no such header is a different failure (a gateway, not the API). |
|
|
53
|
+
| `connection-refused` | Stop the service and call it (`docker compose stop <svc>`). Expect `ECONNREFUSED` immediately. If it hangs instead, the host resolves but nothing listens — that is `hang`, not this row. |
|
|
54
|
+
| `path-not-found` | Run a path-taking script from a different cwd. Expect `ENOENT` naming a path that is *almost* right — the near-miss is the tell that the path is relative, not missing. |
|
|
55
|
+
| `hang` | `await` a promise nothing resolves. Expect no output and no exit, distinguishable from `race` by being 100% reproducible. |
|
|
56
|
+
| `out-of-memory` | Accumulate rows in an array inside a loop over a large fixture. Expect the heap message and exit 137 — and note that the reported line is where allocation failed, not where the growth is. |
|
|
57
|
+
| `permission-denied` | `chmod 000` a fixture and read it. Expect `EACCES`, not `ENOENT` — confusing the two sends you looking for a missing file that is right there. |
|
|
58
|
+
| `order-dependent-test` | Add a module-level mutable to two tests in one file. Expect green alone, red in suite. Reversing the file order should move the failure — if it does not, the cause is shared *external* state, not order. |
|
|
59
|
+
| `local-ci-drift` | Rename a fixture's casing (`Foo.ts` → `foo.ts`) and import the old name. Expect green on macOS, red on Linux CI. The generalisation: anything the local filesystem is lenient about. |
|
|
60
|
+
| `race` | Replace a condition-based wait with a fixed `sleep` shorter than the operation. Expect intermittent failure whose rate moves with machine load — load-sensitivity is what separates this from `order-dependent-test`. |
|
|
61
|
+
| `stale-capability-claim` | Assert a capability without asking for it, then compare against the live verb. `agent-config routing:doctor` prints provenance per field; a field whose provenance is `default` was never established by anything — which is exactly the state a confident self-claim is indistinguishable from. |
|
|
62
|
+
|
|
63
|
+
## How to use
|
|
64
|
+
|
|
65
|
+
1. Match the symptom to a signature above.
|
|
66
|
+
2. Run the **first check** — it is the highest-probability isolation step, not a fix.
|
|
67
|
+
3. If it confirms the cause → fix + add a regression test. If not → fall back to
|
|
68
|
+
the full `systematic-debugging` loop from Phase 1.
|
|
69
|
+
|
|
70
|
+
No signature matches → this table earned nothing; debug from first principles.
|