@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,222 @@
|
|
|
1
|
+
# Artifact Drafting Protocol — Mechanics
|
|
2
|
+
|
|
3
|
+
> Phase A/B/C detail and the roadmap batch-mode carve-out for the `artifact-drafting-protocol` rule
|
|
4
|
+
|
|
5
|
+
_Origin: migrated from `src/rules/artifact-drafting-protocol.md` per the P4 pattern of `road-to-kernel-and-router.md`. The Iron Law, the trigger surface, and the golden rules stay in the rule; this file carries the per-phase procedure._
|
|
6
|
+
|
|
7
|
+
## Phase A — Understand
|
|
8
|
+
|
|
9
|
+
**Question zero, asked first: should this artifact exist at all?**
|
|
10
|
+
|
|
11
|
+
Before the five below, put the extend-versus-create question to the user —
|
|
12
|
+
*is there an existing artifact this belongs in?* It used to live in Phase B,
|
|
13
|
+
after the research, and it was measured moving: one source found that the same
|
|
14
|
+
stop placed after work had begun was passed straight through, because mid-build
|
|
15
|
+
momentum beats restraint. A stop that only fires once you are invested is a stop
|
|
16
|
+
that does not fire.
|
|
17
|
+
|
|
18
|
+
Asking it first costs one question and is answerable without the research: the
|
|
19
|
+
user usually knows whether they are extending something. Phase B still runs the
|
|
20
|
+
overlap scan — that is what turns a guess into a verdict — but it now *confirms
|
|
21
|
+
or overturns* an answer already on the record rather than raising the question
|
|
22
|
+
for the first time at the point where a draft is half-formed.
|
|
23
|
+
|
|
24
|
+
Ask up to **5** further clarifying questions (numbered options, each with a
|
|
25
|
+
*"skip / I don't know yet"* escape):
|
|
26
|
+
|
|
27
|
+
1. **Problem** — what does this solve that no existing artifact solves?
|
|
28
|
+
2. **Trigger surface** — which user phrasings should fire this?
|
|
29
|
+
3. **Should-trigger examples** — 2-3 in the user's words.
|
|
30
|
+
4. **Near-miss cases** — 2-3 phrasings that must **not** fire.
|
|
31
|
+
5. **Artifact type** — skill, rule, command, or guideline? Offer a
|
|
32
|
+
3-line primer if unsure.
|
|
33
|
+
|
|
34
|
+
If the user skips Q1 or Q5, stop and surface the ambiguity — don't guess.
|
|
35
|
+
|
|
36
|
+
## Phase B — Research
|
|
37
|
+
|
|
38
|
+
Run the **search protocol** from
|
|
39
|
+
[`learning-to-rule-or-skill` § 4](../../skills/learning-to-rule-or-skill/SKILL.md)
|
|
40
|
+
— `ls` all four surfaces (`skills/`, `rules/`, `guidelines/`, `commands/`),
|
|
41
|
+
grep with **solution-words AND problem-words**, scan sub-directory
|
|
42
|
+
taxonomies, then **open and skim** the 3 nearest matches. A negative grep
|
|
43
|
+
alone is not proof of no overlap. Report the top 3-5 most-similar
|
|
44
|
+
artifacts and ask (numbered options) — this **confirms or overturns** the
|
|
45
|
+
question-zero answer from Phase A with evidence, rather than raising it for the
|
|
46
|
+
first time:
|
|
47
|
+
|
|
48
|
+
- Extend an existing one?
|
|
49
|
+
- Create a new one — gap is real?
|
|
50
|
+
- Show overlap first?
|
|
51
|
+
- Promote via `learning-to-rule-or-skill` instead?
|
|
52
|
+
|
|
53
|
+
A Phase-B verdict that contradicts the Phase-A answer is the useful outcome, not
|
|
54
|
+
an embarrassment: it is the research doing its job. Surface the contradiction
|
|
55
|
+
and let the user re-decide.
|
|
56
|
+
|
|
57
|
+
Carry the summary into the commit message (*"Reviewed before drafting:
|
|
58
|
+
X, Y"*).
|
|
59
|
+
|
|
60
|
+
### Where the answer is written — `composition_review:`
|
|
61
|
+
|
|
62
|
+
A commit message is not a tree artifact. Measured 2026-08-27 over the twenty most
|
|
63
|
+
recently added skills and rules
|
|
64
|
+
(`agents/evidence/analysis/authoring-search-record-sample-2026-08-27.md`), **1 of
|
|
65
|
+
20** carried a machine-readable record of the Phase-B verdict; 9 carried a strict
|
|
66
|
+
prose one, and the rest carried a `See also` gloss or a routing row. So an
|
|
67
|
+
artifact authored after a thorough scan and one authored after none were
|
|
68
|
+
indiscernible in the tree — which is why the overlap tools
|
|
69
|
+
(`audit_overlap`, `audit_skill_overlap`, `report_layer_overlap`) run over a
|
|
70
|
+
corpus rather than over a decision.
|
|
71
|
+
|
|
72
|
+
The record is a frontmatter block, defined in `skill.schema.json` and
|
|
73
|
+
`rule.schema.json`, and **optional on existing artifacts by design — nothing is
|
|
74
|
+
backfilled**:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
composition_review:
|
|
78
|
+
- candidate: skill:existing-ui-audit # skill: / rule: / command: / guideline: / none
|
|
79
|
+
disposition: create_separate # what happened to this candidate
|
|
80
|
+
rationale: audits what exists before a write; this governs the write itself
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Four dispositions, and the discriminator for each:
|
|
84
|
+
|
|
85
|
+
| Value | Means |
|
|
86
|
+
|---|---|
|
|
87
|
+
| `extend_incumbent` | the incumbent absorbed the change; no new artifact was created |
|
|
88
|
+
| `compose_with_incumbent` | the new artifact routes to the incumbent rather than restating it |
|
|
89
|
+
| `create_separate` | the incumbent exists, was evaluated, and a separate artifact was authored anyway |
|
|
90
|
+
| `none_found` | the search ran and found no credible incumbent — pairs only with `candidate: none` |
|
|
91
|
+
|
|
92
|
+
`none_found` exists so an author is never pushed to **invent** an incumbent to
|
|
93
|
+
satisfy the schema. That failure would manufacture the pro-forma record the
|
|
94
|
+
mechanism is supposed to measure, using the mechanism.
|
|
95
|
+
|
|
96
|
+
`create_separate` is the value no other disposition vocabulary in this tree can
|
|
97
|
+
express, and it is why this is a fifth enum rather than a reuse. The nearest
|
|
98
|
+
incumbent is the harvest ledger's `adopt | adapt`
|
|
99
|
+
(`lint_harvest_provenance.ts:76`), which deliberately **excludes** rejection
|
|
100
|
+
(`:222`) because a rejected harvest has no artifact to cite. This record is the
|
|
101
|
+
mirror image — it is written *on* the artifact being created — so rejection is
|
|
102
|
+
the value it most needs. The finding, review and archive vocabularies are about
|
|
103
|
+
defects, review rows and roadmap files respectively; none of them has a slot for
|
|
104
|
+
"an incumbent existed and I built anyway".
|
|
105
|
+
|
|
106
|
+
**What the lint does and does not do.** `lint_composition_review` fails a record
|
|
107
|
+
whose `candidate` resolves to no artifact, or whose `none` / `none_found` pair
|
|
108
|
+
disagrees — a record naming an incumbent that is not in the tree reads as
|
|
109
|
+
evidence of a search that cannot have happened. It *reports without failing* an
|
|
110
|
+
addition carrying no record at all. It cannot check that the search happened,
|
|
111
|
+
that the rationale is true, or that the named incumbent is the nearest one;
|
|
112
|
+
flipping the advisory half to a block needs a false-positive rate from at least
|
|
113
|
+
one release of advisory operation, which does not exist yet.
|
|
114
|
+
|
|
115
|
+
## Phase C — Draft
|
|
116
|
+
|
|
117
|
+
Propose **2-3 description variants** — Conservative / Pushy
|
|
118
|
+
(per `skill-quality`) / Concrete (embedded trigger example). User picks
|
|
119
|
+
or merges. Only then draft the body. Surface every structural choice
|
|
120
|
+
(size class, section order) as numbered options if in doubt.
|
|
121
|
+
|
|
122
|
+
Enforce size live: *"Body is at 420/500 lines. Split?"* (budgets per
|
|
123
|
+
`size-enforcement`). New skills also get an `evals/triggers.json` stub
|
|
124
|
+
(5 should-trigger + 5 should-not-trigger). See `skill-writing` § 1c.
|
|
125
|
+
|
|
126
|
+
## Roadmap-run batch mode — the ONE structured bypass
|
|
127
|
+
|
|
128
|
+
When a `/roadmap:process-*` run starts under an **accepted execution
|
|
129
|
+
contract** (`roadmap-execution-contract`) whose pre-scan detected
|
|
130
|
+
artifact-authoring steps, the protocol runs in batch mode for exactly
|
|
131
|
+
those artifacts:
|
|
132
|
+
|
|
133
|
+
- **Phase B (Research) runs ONCE at contract time, against the CURRENT
|
|
134
|
+
artifact state** — one overlap scan covering every artifact the
|
|
135
|
+
roadmap plans; results (nearest matches, extend-vs-create verdicts)
|
|
136
|
+
are surfaced inside the contract summary the user accepts. This is
|
|
137
|
+
why authoring-time-only checking is not enough: a sibling roadmap may
|
|
138
|
+
have landed overlapping artifacts between authoring and execution.
|
|
139
|
+
- **Phases A (Understand) and C (Draft) run non-interactively during
|
|
140
|
+
the run** — the roadmap step text is the Understand input; the
|
|
141
|
+
contract acceptance is the approval that the per-phase prompts exist
|
|
142
|
+
to obtain.
|
|
143
|
+
- **Scope is the batch, nothing more.** An artifact NOT declared in the
|
|
144
|
+
roadmap (discovered mid-run) triggers the full interactive protocol —
|
|
145
|
+
or, under the contract, the scope-out-of-roadmap halt. That halt is the
|
|
146
|
+
**default** and stays the default; see § Late artifacts below for the one
|
|
147
|
+
declared value that changes it.
|
|
148
|
+
- Batch mode never skips the Research pass itself — it relocates and
|
|
149
|
+
batches it. `artifact_protocol: skip` does not exist.
|
|
150
|
+
|
|
151
|
+
### Late artifacts — `halt` by default, `auto-research` only when declared
|
|
152
|
+
|
|
153
|
+
The bullet above is the whole rule when the contract says nothing. A contract
|
|
154
|
+
may instead declare `late_artifacts: auto-research`
|
|
155
|
+
([`roadmap-execution-contract § 2a`](../../contexts/execution/roadmap-execution-contract.md)),
|
|
156
|
+
and then a mid-run discovery runs **this** procedure rather than halting:
|
|
157
|
+
|
|
158
|
+
1. **Re-run Phase B against current state** — the same overlap scan the batch
|
|
159
|
+
ran at contract time, now over the artifact the run just found. Nothing new
|
|
160
|
+
is invented: this is the accepted-as-non-interactive procedure, later.
|
|
161
|
+
2. **Extend verdict → extend silently.** The nearest match is edited. This is
|
|
162
|
+
the outcome the overlap scan exists to produce and it needs no approval it
|
|
163
|
+
did not already have.
|
|
164
|
+
3. **Create verdict → derive Phase A from what is already on the record.** The
|
|
165
|
+
understand-answers come from the roadmap step text plus the decision-sheet
|
|
166
|
+
answers the user accepted. No new question is opened.
|
|
167
|
+
4. **Genuine overlap conflict → halt.** Two plausible extend targets, or a
|
|
168
|
+
match whose scope contradicts the step, is a real decision and stops the
|
|
169
|
+
run.
|
|
170
|
+
5. **Cap: three per run, then halt regardless of verdict.**
|
|
171
|
+
|
|
172
|
+
`halt` remains the shipped default (`decision 2026-08-20`, AI council 2/2 on
|
|
173
|
+
the `autonomy-defaults-sheet` fork; record
|
|
174
|
+
`agents/evidence/council/drain-blocker-dispositions-a.md`). The reasoning is
|
|
175
|
+
short: the cap bounds how far an unplanned artifact can drift the run, but it
|
|
176
|
+
does not decide whether the drift is wanted, and the conservative side of that
|
|
177
|
+
fork is the behaviour the tree already had. Making `auto-research` a declared
|
|
178
|
+
value rather than an inherited one is also what makes its own kill criterion —
|
|
179
|
+
the late-artifact revisit rate — attributable to the runs that chose it.
|
|
180
|
+
Reverting is one word in each of the two tables; no mechanism depends on the
|
|
181
|
+
default's direction.
|
|
182
|
+
|
|
183
|
+
**Kill criterion for `auto-research`, at the site rather than in a roadmap:**
|
|
184
|
+
a late-artifact revisit rate above 20 % — an auto-authored or auto-extended
|
|
185
|
+
artifact later reworked or reverted — removes the value and returns every
|
|
186
|
+
late discovery to `halt`. **No instrument today:** nothing counts late
|
|
187
|
+
artifacts or their revisits, so the rate is unmeasured rather than low, and
|
|
188
|
+
the cap of three is the only live bound. Recorded here because a criterion
|
|
189
|
+
that lives only in the roadmap that flipped the default becomes unreachable
|
|
190
|
+
the moment that roadmap is archived.
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
## Complexity budget — the six questions before a new artifact
|
|
194
|
+
|
|
195
|
+
Folded here from the 9.4.0 review (Prio 5), which named the failure mode:
|
|
196
|
+
"das Paket kann fast jede Kritik mit einem weiteren Mechanismus beantworten"
|
|
197
|
+
(Problem → Regel → Lint → Hook → Report → Roadmap → Claim → Test = governance
|
|
198
|
+
inflation). This REPLACES the ad-hoc "should this exist" prose — it is a
|
|
199
|
+
checklist, not a new gate/rule (adding a gate to enforce "add less" would be
|
|
200
|
+
the very inflation it guards against). Before drafting any new skill / rule /
|
|
201
|
+
command / hook / gate, answer all six; a "no" on **replaces** or **removable**
|
|
202
|
+
is a strong signal to fold into an existing artifact instead:
|
|
203
|
+
|
|
204
|
+
1. **Replaces?** — what existing mechanism does this retire or subsume? (If
|
|
205
|
+
nothing, justify why the surface must grow.)
|
|
206
|
+
2. **Overlaps?** — does it duplicate a trigger / responsibility another
|
|
207
|
+
artifact already owns?
|
|
208
|
+
3. **Discoverable?** — will a user actually find it, or does it just raise the
|
|
209
|
+
catalog count?
|
|
210
|
+
4. **Measurable?** — is there a signal that would show it earning its place
|
|
211
|
+
(or a null that would retire it)?
|
|
212
|
+
5. **Removable?** — can it be demoted / de-eligibled / deleted later without a
|
|
213
|
+
migration?
|
|
214
|
+
6. **Who debugs it?** — is the maintenance owner real, given bus-factor?
|
|
215
|
+
|
|
216
|
+
The load-bearing question the review elevates: not "how do we prevent this
|
|
217
|
+
error in future?" but **"which existing mechanism gets removed or replaced?"**
|
|
218
|
+
|
|
219
|
+
## See also
|
|
220
|
+
|
|
221
|
+
- `artifact-drafting-protocol` (rule) — Iron Law, triggers, golden rules.
|
|
222
|
+
- `ask-when-uncertain` · `improve-before-implement` · `user-interaction` · `skill-quality` — the protocol extends these; cross-link, don't restate.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
demo_for: ask-when-uncertain
|
|
3
|
+
layer: pattern-memory
|
|
4
|
+
prose_delta:
|
|
5
|
+
rule_chars_before: 3893
|
|
6
|
+
rule_chars_after: 4267
|
|
7
|
+
measured_at: phase-3.3-cross-link-landing
|
|
8
|
+
note: "+374 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ask-when-uncertain — Pattern Memory
|
|
12
|
+
|
|
13
|
+
> Wrong / right / why demos for the `ask-when-uncertain` Iron Law
|
|
14
|
+
> (one question per turn, vague-request must ask). Linked from
|
|
15
|
+
> [`ask-when-uncertain`](../../rules/ask-when-uncertain.md)
|
|
16
|
+
> § Examples. Outcome baseline at
|
|
17
|
+
> [`tests/golden/outcomes/ask_when_uncertain.json`](../../../tests/golden/outcomes/ask_when_uncertain.json).
|
|
18
|
+
|
|
19
|
+
## Demo 1 — Vague request, multi-question stack
|
|
20
|
+
|
|
21
|
+
### Wrong shape
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
User: improve this
|
|
25
|
+
|
|
26
|
+
Agent:
|
|
27
|
+
1. Should I optimize for readability or speed?
|
|
28
|
+
2. Refactor the function signature?
|
|
29
|
+
3. Add tests too?
|
|
30
|
+
4. Run PHPStan after?
|
|
31
|
+
|
|
32
|
+
Reply with a, b, c, d so I can pick.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Failure mode:** four `?` aimed at the user, structured-answer
|
|
36
|
+
demand (`a, b, c, d`), no triage. Iron Law breach: a turn with a
|
|
37
|
+
question has *exactly one*. Compound thinking load — answer to Q1
|
|
38
|
+
reframes Q2.
|
|
39
|
+
|
|
40
|
+
### Right shape
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
User: improve this
|
|
44
|
+
|
|
45
|
+
Agent: Welche Achse soll "improve" treffen?
|
|
46
|
+
|
|
47
|
+
1. Lesbarkeit (Naming, Funktions-Splits)
|
|
48
|
+
2. Performance (Allokationen, N+1)
|
|
49
|
+
3. Robustheit (Error-Handling, Edge Cases)
|
|
50
|
+
|
|
51
|
+
Dann lege ich los.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Why it works
|
|
55
|
+
|
|
56
|
+
Single `?`, numbered options without compound asks, picks the
|
|
57
|
+
question whose answer reframes everything downstream. The follow-up
|
|
58
|
+
("tests? PHPStan?") rides on the next turn — its framing depends on
|
|
59
|
+
the answer here.
|
|
60
|
+
|
|
61
|
+
## Demo 2 — Drive-by execution on a vague trigger
|
|
62
|
+
|
|
63
|
+
### Wrong shape
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
User: clean up this file
|
|
67
|
+
|
|
68
|
+
Agent: [edits 12 files, removes 200 lines, reformats imports,
|
|
69
|
+
extracts 3 helpers, renames 5 variables]
|
|
70
|
+
Done.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Failure mode:** "clean up" is a vague-request trigger
|
|
74
|
+
(`ask-when-uncertain` § Vague-request triggers). MUST-ask before
|
|
75
|
+
touching code. Without scope, the diff is a guess at the user's
|
|
76
|
+
intent.
|
|
77
|
+
|
|
78
|
+
### Right shape
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
User: clean up this file
|
|
82
|
+
|
|
83
|
+
Agent: Was bedeutet "clean up" hier?
|
|
84
|
+
|
|
85
|
+
1. Toten Code raus
|
|
86
|
+
2. Format / Imports sortieren
|
|
87
|
+
3. Refactor (Funktionen splitten)
|
|
88
|
+
|
|
89
|
+
Pick one — sonst ist der Diff Raten.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Why it works
|
|
93
|
+
|
|
94
|
+
Names the trigger explicitly ("vague-request"), surfaces the three
|
|
95
|
+
canonical interpretations from the rule's trigger table, and
|
|
96
|
+
declines to act without scope. The cost of asking once << cost of
|
|
97
|
+
ripping through 12 files in the wrong direction.
|
|
98
|
+
|
|
99
|
+
## Demo 3 — Stacked questions inside a handoff
|
|
100
|
+
|
|
101
|
+
### Wrong shape
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Agent: Bevor ich die Roadmap übergebe:
|
|
105
|
+
|
|
106
|
+
- Welcher Branch?
|
|
107
|
+
- Soll ich PRs erwähnen?
|
|
108
|
+
- Welches Modell für die Fortsetzung?
|
|
109
|
+
- Soll ich agents/runtime/.agent-chat-history zitieren?
|
|
110
|
+
|
|
111
|
+
Antworte als 1, 2, 3, 4.
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Failure mode:** four-question handoff block. Per § Ordering &
|
|
115
|
+
handoff: handoff questions ride LAST, after domain clarifications,
|
|
116
|
+
folded into the handoff prompt itself — not as a parallel quiz.
|
|
117
|
+
|
|
118
|
+
### Right shape
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Agent: [delivers the handoff prompt with sensible defaults filled
|
|
122
|
+
in: current branch, PR link present if open, model
|
|
123
|
+
recommendation per `model-recommendation`, history reference
|
|
124
|
+
auto-included]
|
|
125
|
+
|
|
126
|
+
Welche der vier Defaults soll ich vor dem Übergeben anpassen?
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Why it works
|
|
130
|
+
|
|
131
|
+
Defaults absorb three of the four "questions"; the remaining
|
|
132
|
+
question is the only one that genuinely needs user input — and it's
|
|
133
|
+
phrased so a one-word answer ("PR link" / "model" / "passt") closes
|
|
134
|
+
the loop.
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# asking-and-brevity-examples
|
|
2
|
+
|
|
3
|
+
Companion examples for three always-rules:
|
|
4
|
+
[`ask-when-uncertain`](../../rules/ask-when-uncertain.md),
|
|
5
|
+
[`no-cheap-questions`](../../rules/no-cheap-questions.md),
|
|
6
|
+
[`direct-answers`](../../rules/direct-answers.md).
|
|
7
|
+
|
|
8
|
+
The rules carry the Iron Laws and the obligation surface. This file
|
|
9
|
+
carries the illustrative material (example questions, rationale
|
|
10
|
+
tables, failure-mode catalogs) that does not need to live in the
|
|
11
|
+
always-loaded rule body — extracted to fit the always-rule budget.
|
|
12
|
+
|
|
13
|
+
## Vague-request triggers — example questions
|
|
14
|
+
|
|
15
|
+
Companion to `ask-when-uncertain` § Vague-request triggers. This
|
|
16
|
+
section is the canonical home for the nine trigger patterns, the
|
|
17
|
+
missing-info each one hides, and the example clarifying question —
|
|
18
|
+
the rule cites it instead of restating the catalog.
|
|
19
|
+
|
|
20
|
+
| Pattern | Missing info | Example clarifying question |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| "improve / optimize this" | metric — speed, readability, memory? | "Optimize for what — execution speed or readability?" |
|
|
23
|
+
| "add caching" | store, scope, invalidation | "Which cache driver, and what invalidates it?" |
|
|
24
|
+
| "make it better / cleaner" | by what standard? | "What specifically feels wrong in the current code?" |
|
|
25
|
+
| "clean up this file" | dead code, format, refactor? | "Remove unused code, reformat, or restructure?" |
|
|
26
|
+
| "fix this" (no symptom) | what output is wrong? | "What output/behavior is wrong right now?" |
|
|
27
|
+
| "refactor X" | target pattern, boundaries | "Refactor toward what — smaller methods, extract class, or something else?" |
|
|
28
|
+
| "use best practices" | whose, for what? | "Best practices for what specifically — testing, naming, structure?" |
|
|
29
|
+
| "handle errors properly" | which errors — log/retry/propagate? | "For which failure modes, and what should happen on error?" |
|
|
30
|
+
| "add a UI / component / tile / page" in mixed-framework repo | which stack? | "This repo uses {A} and {B} for UI — which one for this?" |
|
|
31
|
+
|
|
32
|
+
## One-question-per-turn — why serial always wins
|
|
33
|
+
|
|
34
|
+
Companion to `ask-when-uncertain` § How to ask. The rule states the
|
|
35
|
+
Iron Law and the self-check; this file expands the rationale.
|
|
36
|
+
|
|
37
|
+
| Situation | Why serial always wins |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Design / architecture decisions | Answer to Q1 reframes Q2 |
|
|
40
|
+
| Naming / command-syntax / API shape | Later choices depend on it |
|
|
41
|
+
| Scope / PR boundaries | Changes what the other questions even mean |
|
|
42
|
+
| Tool / library selection | Downstream choices branch from it |
|
|
43
|
+
| "Which approach: A vs B vs C" | Each answer opens a different follow-up |
|
|
44
|
+
| Even "independent" yes/no pairs | User still has to parse two contexts |
|
|
45
|
+
| Any question the user has to **think** about, not just pick | Thinking load compounds when stacked |
|
|
46
|
+
|
|
47
|
+
The shorthand: if the user has to *think* about an answer, that
|
|
48
|
+
answer almost always reframes whatever question would have come
|
|
49
|
+
next. Serial preserves the framing; parallel destroys it.
|
|
50
|
+
|
|
51
|
+
## Cheap-question class catalog — extended examples
|
|
52
|
+
|
|
53
|
+
Companion to `no-cheap-questions` § What counts as cheap. This
|
|
54
|
+
section is the canonical home for the nine cheap-question classes
|
|
55
|
+
and their per-class patterns — the rule cites it instead of
|
|
56
|
+
restating the catalog.
|
|
57
|
+
|
|
58
|
+
| Class | Pattern · why cheap | Concrete example |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| **Sequencing** | "Step 2 or 3 next?" when roadmap orders them — answer is in the roadmap | Roadmap says "2.1 then 2.2" → don't ask "should I do 2.2 next?" |
|
|
61
|
+
| **Format-only** | "Table or paragraph?" — no semantic trade-off | User asked for a summary; format is a non-decision |
|
|
62
|
+
| **Commit asks** | "Commit now?" — `commit-policy`: never ask | The commit-policy Iron Law forbids the question |
|
|
63
|
+
| **CI / test asks** | "Run tests now?" — `verify-before-complete` decides | Verification is mandatory before completion claims; not a choice |
|
|
64
|
+
| **Fenced-step re-asks** | "Start Phase 1?" after "plan only" — `scope-control § fenced step` | The fence stands until the user explicitly lifts it |
|
|
65
|
+
| **Iron-Law option** | Option breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default` — does not exist | Don't surface "force-push to main?" as Option 2 |
|
|
66
|
+
| **Context-derived** | Answer follows from prior turn / standing instruction / roadmap — act, state assumption inline | "Use the same branch?" after user said "stay on this branch" |
|
|
67
|
+
| **Dominant option** | One choice obviously correct; alternatives carry no upside — pick it | "Run the linter or skip it?" when the linter is part of CI |
|
|
68
|
+
| **Re-ask after decline** | Same path after user said no — `scope-control § decline = silence` | User declined a separate branch → don't propose it again on the same task |
|
|
69
|
+
|
|
70
|
+
## Direct-answers — severity-tiered claim examples
|
|
71
|
+
|
|
72
|
+
Companion to `direct-answers` § Iron Law 2 (no invented facts). This
|
|
73
|
+
section is the canonical home for the severity tiers, per-tier
|
|
74
|
+
verification actions, and the override carve-out — the rule cites it
|
|
75
|
+
instead of restating the table.
|
|
76
|
+
|
|
77
|
+
| Severity | Examples | Verification action |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| **High — load-bearing** | "Method `X::y()` exists at `path/to/file.php:142`", "version 12.4.1 added the API", "this test passes" | MUST verify with `view`, `grep`, `codebase-retrieval`, or fresh command output **before** claiming. Too expensive → ask. |
|
|
80
|
+
| **Medium — project-shape** | "This project uses Pest for testing", "controllers live under `app/Http/Controllers`" | Verify if one tool call reaches it; otherwise hedge: *"I'd guess X — not checked"*. |
|
|
81
|
+
| **Low — well-known idioms** | "PHP `array_map` returns a new array", "git tags are immutable", "JS arrays are zero-indexed" | Inference acceptable. Mark as inference if not 100% sure. |
|
|
82
|
+
|
|
83
|
+
**Override:** "just guess" / "rough estimate" / "skip verify" in the
|
|
84
|
+
user's turn drops every claim to **Low** for that turn only. Reverts
|
|
85
|
+
on the next turn unless the user repeats the override.
|
|
86
|
+
|
|
87
|
+
Hedge-language patterns:
|
|
88
|
+
|
|
89
|
+
- ✅ "haven't verified X — likely from {known-similar-codebase}"
|
|
90
|
+
- ✅ "guess, not checked — `path/to/file.php:142` is my best read"
|
|
91
|
+
- ❌ "probably" alone — name what's unverified
|
|
92
|
+
- ❌ "vermutlich" without hedge target <!-- md-language-check: ignore -->
|
|
93
|
+
|
|
94
|
+
### Volatile-fact freshness — which claims need a live source
|
|
95
|
+
|
|
96
|
+
Generalizes `direct-answers` Iron Law 2's git/PR live-state clause to any
|
|
97
|
+
research or knowledge claim, not just repo state.
|
|
98
|
+
|
|
99
|
+
| Class | Examples | Rule |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| **Fresh-lookup** | current role/status of a person or org, prices/versions/quotas, laws & regulatory policy, an unrecognized entity (tool, package, product), a binary event (release, deprecation, incident) | Never answer from model memory — search or cite a live source, every time. These change silently and staleness is invisible until wrong. |
|
|
102
|
+
| **Stable** | math/CS fundamentals, settled historical facts, language/framework basics pinned by the project's own lockfiles | Model knowledge is acceptable; no live lookup required. |
|
|
103
|
+
|
|
104
|
+
The line is whether the fact **could have changed since training** in a way
|
|
105
|
+
that matters for the claim. When in doubt, treat it as fresh-lookup — the
|
|
106
|
+
cost of one extra search is far lower than a stale claim stated with
|
|
107
|
+
confidence.
|
|
108
|
+
|
|
109
|
+
### No duration estimates (Iron Law 2 family)
|
|
110
|
+
|
|
111
|
+
An LLM has no wall-clock and no latency training signal, so a duration estimate
|
|
112
|
+
is a fabricated fact wearing a number:
|
|
113
|
+
|
|
114
|
+
- Never predict how long **the agent's own work** will take ("this refactor is
|
|
115
|
+
~2 hours", "I'll have it in a few minutes").
|
|
116
|
+
- Never predict how long **the user's work** will take ("this is a 2–3 week
|
|
117
|
+
project", "should take you an afternoon").
|
|
118
|
+
- Instead: break the work into **actionable steps** and let the user judge
|
|
119
|
+
timing against their own context — they have the clock, the agent does not.
|
|
120
|
+
|
|
121
|
+
A step list is honest ("A → B → C, C depends on B"); a schedule is invention.
|
|
122
|
+
|
|
123
|
+
**Carve-out — world-knowledge ranges.** An industry-typical duration sourced
|
|
124
|
+
from public benchmarks in strategy-advisory output ("integrations of this
|
|
125
|
+
class typically run 4–8 weeks") is a statement about the world, not a
|
|
126
|
+
prediction of the agent's or the user's own latency — allowed, but it MUST
|
|
127
|
+
carry an "industry-typical, not a prediction" qualifier. Unqualified, it
|
|
128
|
+
reads as the banned schedule.
|
|
129
|
+
|
|
130
|
+
### Never cite the rule as the reason
|
|
131
|
+
|
|
132
|
+
When declining or constraining an action, give the **actual, substantive
|
|
133
|
+
reason** — never "my rules / guidelines / instructions require X":
|
|
134
|
+
|
|
135
|
+
- ❌ "I can't do that, my guidelines don't allow it." / "A rule requires me to ask first."
|
|
136
|
+
- ✅ "Sending this would post publicly and can't be undone, so confirm the recipient first." / "This edits a production branch — I need your go-ahead."
|
|
137
|
+
|
|
138
|
+
Appealing to a hidden rule (a) replaces real reasoning the user can evaluate,
|
|
139
|
+
and (b) widens the prompt-extraction surface (it advertises that hidden
|
|
140
|
+
instructions exist and invites probing them). State the real-world consequence,
|
|
141
|
+
not the rule's existence.
|
|
142
|
+
|
|
143
|
+
## Direct-answers — failure modes the user will call out
|
|
144
|
+
|
|
145
|
+
Companion to `direct-answers` § Failure modes. The rule lists the
|
|
146
|
+
modes; this file adds the trigger phrases and the in-language
|
|
147
|
+
correction pattern.
|
|
148
|
+
|
|
149
|
+
| Failure | User's typical callout | Correct response |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| Iron Law 1 violation | "skip the flattery", "ohne smalltalk" | drop the opener; deliver substance |
|
|
152
|
+
| Iron Law 2 violation | "have you actually checked?", "wo steht das?" | re-verify with a tool call; correct or retract the claim |
|
|
153
|
+
| Iron Law 3 violation | "kürzer", "less prose", "tldr" | trim to one sentence + the answer | <!-- md-language-check: ignore -->
|
|
154
|
+
| Emoji blacklist hit | "ohne emojis", "no decoration" | re-render plain |
|
|
155
|
+
|
|
156
|
+
Acknowledge once, in the user's language, switch behavior, no
|
|
157
|
+
excuses (mirrors `language-and-tone` § slip handling).
|
|
158
|
+
|
|
159
|
+
### Bullet floor
|
|
160
|
+
|
|
161
|
+
Companion to `direct-answers` § Iron Law 3. Multi-step content earns
|
|
162
|
+
bullets; each bullet is a complete 1–2-sentence statement, never a
|
|
163
|
+
fragment masquerading as a list item ("Faster." / "Better UX." with no
|
|
164
|
+
subject or verb). A decline or refusal is never rendered as a bulleted
|
|
165
|
+
list of reasons — declines are short prose, one or two sentences, because
|
|
166
|
+
a bulleted refusal reads as a checklist to argue against rather than a
|
|
167
|
+
direct answer.
|
|
168
|
+
|
|
169
|
+
## No Cheap Questions — Iron Law 3 detail (paternalistic state options)
|
|
170
|
+
|
|
171
|
+
Companion to `no-cheap-questions` § Iron Law 3. The rule states the
|
|
172
|
+
prohibition; this file lists the patterns and the carve-outs.
|
|
173
|
+
|
|
174
|
+
**Forbidden patterns** (non-exhaustive):
|
|
175
|
+
|
|
176
|
+
- "Stop hier — du hast genug für heute" <!-- md-language-check: ignore -->
|
|
177
|
+
- "Take a break and come back fresh"
|
|
178
|
+
- "Weitermachen wenn frisch" <!-- md-language-check: ignore -->
|
|
179
|
+
- "Du wirkst genervt, sollen wir pausieren?" <!-- md-language-check: ignore -->
|
|
180
|
+
- "Sleep on it"
|
|
181
|
+
- "That's a good stopping point" as a numbered option
|
|
182
|
+
- Any option whose recommendation rests on inferred fatigue,
|
|
183
|
+
frustration, or end-of-day mood.
|
|
184
|
+
|
|
185
|
+
**Carve-outs** — allowed because they cite **observable, in-message**
|
|
186
|
+
evidence, not inferred state:
|
|
187
|
+
|
|
188
|
+
- User said "ich bin müde / done for today / let's stop" **this turn** <!-- md-language-check: ignore -->
|
|
189
|
+
→ ack and stop (instruction, not option).
|
|
190
|
+
- Hard Floor confirmation per `non-destructive-by-default` → "confirm
|
|
191
|
+
or abort" is the option, not "rest".
|
|
192
|
+
- Context-window / freshness threshold tripped per `context-hygiene` →
|
|
193
|
+
cite the threshold ("fresh chat at 75%"), do not infer mood.
|
|
194
|
+
|
|
195
|
+
**The rule of thumb**: every numbered option must be a technical /
|
|
196
|
+
scope / sequencing choice with a real trade-off, not a mood-management
|
|
197
|
+
nudge. If the only remaining differentiator is "you might be tired" →
|
|
198
|
+
drop the option, recommend a concrete next step instead.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Break-Glass Usage
|
|
2
|
+
|
|
3
|
+
Guideline for operating the agent under a controlled emergency state —
|
|
4
|
+
when a production incident requires faster stabilization than normal
|
|
5
|
+
verification allows.
|
|
6
|
+
|
|
7
|
+
Break-glass is **a narrowing, not a bypass**. The rules still apply; the
|
|
8
|
+
gate is just smaller. Never decide to "break glass" unilaterally.
|
|
9
|
+
|
|
10
|
+
## When break-glass is justified
|
|
11
|
+
|
|
12
|
+
All of the following must hold:
|
|
13
|
+
|
|
14
|
+
- **Active customer-impacting incident** — data loss, outage, security
|
|
15
|
+
exposure, billing regression. Not "we have a deadline".
|
|
16
|
+
- **Explicit user invocation** — the user says "break-glass" or
|
|
17
|
+
"hotfix, skip the full suite". Ambiguous wording is not enough; ask.
|
|
18
|
+
- **No viable rollback path** that would be faster than the forward fix.
|
|
19
|
+
|
|
20
|
+
Not a break-glass situation:
|
|
21
|
+
|
|
22
|
+
- Friday afternoon and you want to ship a feature.
|
|
23
|
+
- CI is slow and you want to skip tests.
|
|
24
|
+
- You can't reproduce a flaky test locally.
|
|
25
|
+
- A reviewer is asleep and you want to self-approve.
|
|
26
|
+
|
|
27
|
+
## How to invoke
|
|
28
|
+
|
|
29
|
+
The user sets one of:
|
|
30
|
+
|
|
31
|
+
1. **Conversation flag** — says "break-glass: true" or "this is a hotfix".
|
|
32
|
+
2. **PR label** — `break-glass` on the PR (optional; the agent still
|
|
33
|
+
requires explicit invocation in the current turn).
|
|
34
|
+
3. **Commit trailer** — `Break-Glass: <incident-id>` in the commit
|
|
35
|
+
message of the hotfix.
|
|
36
|
+
|
|
37
|
+
The agent confirms: "Entering break-glass — narrowing verification to
|
|
38
|
+
targeted test + smoke check. Follow-up PR required within 24h. Confirm?"
|
|
39
|
+
If the user agrees, proceed. If not, stay in the normal gate.
|
|
40
|
+
|
|
41
|
+
## What narrows
|
|
42
|
+
|
|
43
|
+
| Layer | Normal gate | Break-glass |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Tests | Targeted + full suite | Targeted only — covering the regression |
|
|
46
|
+
| Quality tools | PHPStan + Rector + ECS | Deferred to follow-up PR |
|
|
47
|
+
| Migrations review | Full dry-run + rollback check | Dry-run only, rollback note mandatory |
|
|
48
|
+
| Code review | ≥ 1 reviewer from required roles | 1 reviewer, can be post-merge |
|
|
49
|
+
| Changelog | Required | Deferred to follow-up PR |
|
|
50
|
+
|
|
51
|
+
Zero tests is **never** acceptable. If the incident fix genuinely cannot
|
|
52
|
+
be tested in the available time, document that explicitly and attach a
|
|
53
|
+
reproducer to the follow-up ticket.
|
|
54
|
+
|
|
55
|
+
## What does NOT narrow
|
|
56
|
+
|
|
57
|
+
These rules stay fully in force, break-glass or not:
|
|
58
|
+
|
|
59
|
+
- [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — the hotfix is
|
|
60
|
+
still the **smallest** change that stops the bleeding. No drive-by
|
|
61
|
+
cleanups.
|
|
62
|
+
- [`security-sensitive-stop`](../../rules/security-sensitive-stop.md) — a
|
|
63
|
+
security-relevant change still needs the threat-model pass.
|
|
64
|
+
- [`scope-control`](../../rules/scope-control.md) — never mix the
|
|
65
|
+
hotfix with unrelated refactors from another branch.
|
|
66
|
+
- [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — more
|
|
67
|
+
asking, not less, when the blast radius is live.
|
|
68
|
+
|
|
69
|
+
## Required artifacts
|
|
70
|
+
|
|
71
|
+
The hotfix PR must include, in the description:
|
|
72
|
+
|
|
73
|
+
1. **Incident link** — ticket, Sentry issue, or Statuspage entry.
|
|
74
|
+
2. **Skipped validations** — bullet list of what was deferred (e.g.
|
|
75
|
+
"full PHPUnit suite", "PHPStan", "Rector").
|
|
76
|
+
3. **Evidence attached in-PR** — targeted test output, smoke-check log or
|
|
77
|
+
curl response, migration dry-run if applicable.
|
|
78
|
+
4. **Follow-up commitment** — link to the follow-up ticket or PR that
|
|
79
|
+
will run the full gate. Due within 24h.
|
|
80
|
+
|
|
81
|
+
## After the incident
|
|
82
|
+
|
|
83
|
+
Within 24 hours:
|
|
84
|
+
|
|
85
|
+
1. Open the **follow-up PR** — runs the full verification gate against
|
|
86
|
+
the same branch or a rebase onto main.
|
|
87
|
+
2. Write a short **incident note** (2–5 lines) — what failed, what the
|
|
88
|
+
hotfix did, what was deferred. Store in the project's postmortem
|
|
89
|
+
location.
|
|
90
|
+
3. If the incident exposed a recurring failure mode, add an entry to
|
|
91
|
+
`historical-bug-patterns.yml` (see
|
|
92
|
+
[`review-routing-data-format`](review-routing-data-format.md)).
|
|
93
|
+
|
|
94
|
+
## Anti-patterns — reject them
|
|
95
|
+
|
|
96
|
+
- "Break-glass" used as a label for every urgent task — the word stops
|
|
97
|
+
meaning anything.
|
|
98
|
+
- Shipping the hotfix **and** a refactor in the same commit "since the
|
|
99
|
+
file was open".
|
|
100
|
+
- Skipping the follow-up PR because "the hotfix was fine". The gate
|
|
101
|
+
runs once, not zero times.
|
|
102
|
+
- Logging the incident as "false alarm" when the hotfix actually
|
|
103
|
+
changed behavior. If behavior changed, write the note.
|
|
104
|
+
|
|
105
|
+
## See also
|
|
106
|
+
|
|
107
|
+
- [`minimal-safe-diff`](../../rules/minimal-safe-diff.md) — break-glass
|
|
108
|
+
exception section.
|
|
109
|
+
- [`verify-before-complete`](../../rules/verify-before-complete.md) —
|
|
110
|
+
break-glass reduction section.
|
|
111
|
+
- [`security-sensitive-stop`](../../rules/security-sensitive-stop.md).
|
|
112
|
+
- [`review-routing-data-format`](review-routing-data-format.md) —
|
|
113
|
+
where to register newly-discovered failure modes.
|