@event4u/agent-config 14.23.0 → 16.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 +144 -152
- 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 +1 -1
- 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 +4 -3
- package/dist/agent-src/commands/roadmap/materialize.md +2 -2
- package/dist/agent-src/commands/roadmap/next.md +1 -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 +51 -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 +1 -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 +2 -2
- 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/rules/user-interaction.md +31 -30
- 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-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/error-handling-patterns/SKILL.md +9 -0
- 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/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 +11 -5
- 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-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
- package/dist/cli-delegate/{chunk-IAI3XL43.js → chunk-3FKR64R5.js} +22 -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-KCNTUSPI.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-H32DGUJH.js} +15 -84
- package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
- package/dist/cli-delegate/chunk-NUHLI2RX.js +80 -0
- package/dist/cli-delegate/{chunk-TYSY33MD.js → chunk-QJWAUMJW.js} +12 -2
- package/dist/cli-delegate/{chunk-2KKXJW25.js → chunk-S3VFXMTM.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 +834 -275
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_explain.js +5 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +6 -6
- 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 +3 -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 +3 -3
- 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 +54 -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 +25 -78
- 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 +9684 -9304
- package/dist/install/install.mjs +36 -8
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2147 -1470
- 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/installed_lock.js +1 -1
- package/dist/scripts/condense.js +2 -5
- package/dist/server/io/yamlIO.js +175 -17
- package/dist/server/schemas/settings.js +18 -4
- package/dist/shared/settingsSurface.js +6 -1
- package/docs/contracts/settings-classes.md +18 -9
- 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/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/package.json +7 -3
- package/src/config/agent-settings.template.yml +55 -8
- package/src/config/ci-local-parity.yml +34 -0
- package/src/config/continuity-surface.json +11 -32
- 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 +1 -1
- package/src/config/host-injection-effect.json +2 -2
- package/src/config/pack-size-budget.json +55 -4
- package/src/config/platform-anchor.json +47 -0
- package/src/config/preamble-payload-budget.json +12 -8
- package/src/config/preamble-payload-exceptions.json +28 -0
- package/src/config/publish-surface.json +4 -2
- package/src/config/ratification-policy.json +7 -0
- package/src/config/rule-stub-ceilings.json +16 -9
- package/src/scripts/_cli/cmd_settings_get.ts +22 -7
- package/src/scripts/_dispatch.bash +3 -1
- 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/base_ref_payload.ts +315 -0
- package/src/scripts/_lib/conformance_report.ts +403 -0
- package/src/scripts/_lib/continuity_writer.ts +72 -13
- package/src/scripts/_lib/design_system_import.ts +20 -0
- package/src/scripts/_lib/design_tolerance.ts +281 -0
- package/src/scripts/_lib/dropped_decision.ts +142 -0
- package/src/scripts/_lib/guidelines_lane.ts +164 -0
- package/src/scripts/_lib/installed_lock.ts +1 -1
- package/src/scripts/_lib/measured_payload_ceiling.ts +424 -0
- package/src/scripts/_lib/obligation_frequency.ts +2 -3
- package/src/scripts/_lib/payload_catalogue_completeness.ts +211 -0
- package/src/scripts/_lib/platform_anchor.ts +1053 -0
- package/src/scripts/_lib/ratification_artifact.ts +278 -0
- package/src/scripts/_lib/release_findings_ingest.ts +324 -0
- package/src/scripts/_lib/release_tag_dispatch.ts +63 -0
- package/src/scripts/_lib/review_baseline.ts +254 -0
- package/src/scripts/_lib/review_skipped_record.ts +61 -1
- package/src/scripts/_lib/security_lint.ts +23 -2
- package/src/scripts/_lib/self_repair.ts +21 -0
- package/src/scripts/_lib/session_index_trust.ts +42 -1
- package/src/scripts/_lib/standing_bound_ratchet.ts +267 -88
- package/src/scripts/_lib/tolerance_shadow.ts +177 -0
- package/src/scripts/_lib/turn_end_refusals.ts +51 -4
- package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
- package/src/scripts/autonomy_friction_traffic.ts +379 -0
- package/src/scripts/check_beta_review_markers.ts +35 -4
- package/src/scripts/check_finding_dispositions.ts +167 -16
- package/src/scripts/check_held_object_arrivals.ts +381 -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 +672 -107
- package/src/scripts/check_projected_rule_routes.ts +395 -0
- package/src/scripts/check_release_published.ts +1 -1
- package/src/scripts/check_reply_consistency.ts +86 -17
- package/src/scripts/code_graph/cli.ts +6 -0
- package/src/scripts/condense.ts +2 -6
- package/src/scripts/generate_host_cost_table.ts +354 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +74 -30
- package/src/scripts/hooks/block_kernel_rule_writes.ts +12 -2
- package/src/scripts/hooks/category_a.ts +1 -1
- package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/end_review_nudge_hook.ts +101 -21
- package/src/scripts/hooks/review_baseline_hook.ts +130 -0
- package/src/scripts/hooks/session_eol_hook.ts +68 -154
- package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +232 -14
- package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
- package/src/scripts/hooks_doctor.ts +4 -1
- package/src/scripts/hot_context_hook.ts +41 -401
- package/src/scripts/install.ts +1 -1
- package/src/scripts/interruption_report.ts +8 -2
- package/src/scripts/janitor.ts +8 -1
- package/src/scripts/lint_evidence_artifacts.ts +1 -0
- package/src/scripts/lint_knowledge_scale.ts +0 -26
- package/src/scripts/measure_turn_end_gate.ts +302 -5
- package/src/scripts/memory_lookup.ts +9 -9
- package/src/scripts/release.ts +52 -64
- package/src/scripts/release_drill.ts +193 -14
- package/src/scripts/release_env.ts +1 -1
- package/src/scripts/release_publication.ts +1 -1
- package/src/scripts/report_held_object_arrivals.ts +456 -0
- package/src/scripts/report_standing_payload_by_host.ts +7 -7
- package/src/scripts/session_memory_index.ts +5 -0
- package/src/scripts/sync_agent_settings.ts +394 -12
- package/src/server/io/yamlIO.ts +175 -17
- package/src/server/schemas/settings.ts +25 -5
- package/src/shared/settingsSurface.ts +13 -2
- package/src/templates/compact-instructions.md +8 -3
- package/dist/agent-src/commands/chat-history/import.md +0 -170
- package/dist/agent-src/commands/chat-history.md +0 -63
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# Roadmap Progress Sync
|
|
2
|
+
|
|
3
|
+
> Any touch to agents/roadmaps/ — create/rename/delete/move, edit checkboxes ([x]/[~]/[-]), add/rename/remove phases — must regenerate dashboard and archive if 0 open items, same response
|
|
4
|
+
|
|
5
|
+
_Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` per P4.2 of `road-to-kernel-and-router.md`._
|
|
6
|
+
|
|
7
|
+
<!-- cloud_safe: degrade -->
|
|
8
|
+
<!-- Authoring discipline applies in cloud; local script + regen are no-ops there. -->
|
|
9
|
+
|
|
10
|
+
# Roadmap Progress Sync
|
|
11
|
+
|
|
12
|
+
> **Enforced by (defence in depth):**
|
|
13
|
+
> 1. [`scripts/roadmap_progress_hook.ts`](../../../src/scripts/roadmap_progress_hook.ts)
|
|
14
|
+
> on Augment + Claude Code (`PostToolUse`) — auto-regen on write.
|
|
15
|
+
> 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
|
|
16
|
+
> blocks any commit whose staged set touches `agents/roadmaps/` or
|
|
17
|
+
> `agents/roadmaps-progress.md` while the dashboard is stale.
|
|
18
|
+
> 3. The `ci` task runs `roadmap-progress-check` so a PR cannot land with a
|
|
19
|
+
> stale dashboard even if local hooks were bypassed.
|
|
20
|
+
>
|
|
21
|
+
> Hook is primary; the prose below is the specification the hook
|
|
22
|
+
> implements and the fallback where no hook is bound on the platform.
|
|
23
|
+
|
|
24
|
+
## Iron Law — dashboard sync
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
ANY ROADMAP TOUCH → REGENERATE THE DASHBOARD, SAME RESPONSE.
|
|
28
|
+
NO EXCEPTIONS. NO "I'LL DO IT AT THE END". NO BATCHING ACROSS TURNS.
|
|
29
|
+
A ROADMAP NOT IN THE DASHBOARD IS A RULE VIOLATION, NOT AN OVERSIGHT.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Roadmap touch =** create the file, rename it, delete it, move it
|
|
33
|
+
between `roadmaps/` ↔ `archive/` ↔ `skipped/`, add/rename/remove a
|
|
34
|
+
phase, **OR** flip any checkbox (`[ ]` ↔ `[x]` ↔ `[~]` ↔ `[-]`).
|
|
35
|
+
|
|
36
|
+
`agents/roadmaps-progress.md` is the read-only dashboard. Every
|
|
37
|
+
unsynced edit makes it lie to the next reader. Created a roadmap
|
|
38
|
+
without regenerating? The dashboard claims it does not exist. Marked
|
|
39
|
+
8 steps `[x]` and forgot the regen? The dashboard says 0 done.
|
|
40
|
+
|
|
41
|
+
## Iron Law — every active roadmap is trackable
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
EVERY ACTIVE ROADMAP MUST CONTAIN AT LEAST ONE TRACKABLE CHECKBOX
|
|
45
|
+
(`- [ ]`) PER NON-INTRO PHASE. ROADMAPS WITHOUT EXECUTABLE STEPS
|
|
46
|
+
EITHER GET A CHECKLIST OR THE `status: draft` FLAG.
|
|
47
|
+
CI-ENFORCED: `scripts/check_roadmap_trackable.ts` (CANNOT BE DEFERRED).
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Active roadmap =** any file in `agents/roadmaps/` (root, not
|
|
51
|
+
`archive/` or `skipped/`) without `status: draft` frontmatter.
|
|
52
|
+
|
|
53
|
+
**Trackable checkbox =** an actionable `- [ ]` line under a `## Phase N`
|
|
54
|
+
or `### Phase N` heading (numeric `Phase 1`, roman `Phase II`, or
|
|
55
|
+
letter-track `Phase A1` — matched by the dashboard's `PHASE_RE`).
|
|
56
|
+
Tables of decisions, ICE matrices, ADR captures, and "block
|
|
57
|
+
sequencing" tables are valid **rationale**, but they do not satisfy
|
|
58
|
+
this rule on their own — they must be paired with at least one
|
|
59
|
+
`## Phase N` section whose checkboxes execute the decision.
|
|
60
|
+
Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
|
|
61
|
+
`### P0 #1 — …`, or `## Block A` do **not** count — only the
|
|
62
|
+
canonical `Phase <id>` form parsed by the dashboard.
|
|
63
|
+
|
|
64
|
+
**CI backstop.** `scripts/check_roadmap_trackable.ts` (package-shipped,
|
|
65
|
+
wire into the consumer's pre-commit / pre-push / Actions gate) fails
|
|
66
|
+
when an active roadmap has zero canonical `Phase` headings or when
|
|
67
|
+
any parsed phase has zero checkboxes. Last line of defence — real-time
|
|
68
|
+
authoring still flips checkboxes and regenerates the dashboard the
|
|
69
|
+
same response.
|
|
70
|
+
|
|
71
|
+
## Status — binary `ready` (default) vs `draft`
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
---
|
|
75
|
+
status: draft # hidden from the dashboard until flipped
|
|
76
|
+
---
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Two values, no synonyms. Anything else — no frontmatter at all,
|
|
80
|
+
`status: ready`, an unknown value — counts as **ready** and lands
|
|
81
|
+
in the dashboard.
|
|
82
|
+
|
|
83
|
+
- **Ready** is the implicit default. New roadmaps are created
|
|
84
|
+
ready unless the user explicitly says draft. Ready roadmaps are
|
|
85
|
+
listed in the dashboard, count towards open/done totals, and
|
|
86
|
+
trip the "completed but not archived" warning when they close.
|
|
87
|
+
- **Draft** hides the file from the dashboard entirely (not
|
|
88
|
+
counted, not listed). Use it while the roadmap is still being
|
|
89
|
+
authored, while waiting for upstream decisions, or as a
|
|
90
|
+
capture-only synthesis that has not yet been promoted to
|
|
91
|
+
executable phases. Flip to ready (or remove the field) the
|
|
92
|
+
moment the roadmap is ready to track.
|
|
93
|
+
|
|
94
|
+
**Completion = archival, same response.** When the edit takes a
|
|
95
|
+
roadmap to `count_open == 0` (every item is `[x]`, `[~]`, or `[-]`),
|
|
96
|
+
`git mv` it into `agents/roadmaps/archive/` (or `skipped/` if no `[x]`
|
|
97
|
+
at all) **before** regenerating the dashboard. A 100%-complete
|
|
98
|
+
roadmap left under `agents/roadmaps/` is a rule violation, not an
|
|
99
|
+
optional cleanup. See `roadmap-management` skill for the archive vs
|
|
100
|
+
skipped decision table.
|
|
101
|
+
|
|
102
|
+
## Agent-authored roadmaps — placement is mandatory
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
A FILE THE AGENT DROPS INTO agents/roadmaps/ MUST EITHER
|
|
106
|
+
(a) PASS check_roadmap_trackable.ts AND LAND IN THE DASHBOARD, OR
|
|
107
|
+
(b) NOT BE IN agents/roadmaps/ AT ALL.
|
|
108
|
+
NO "DECISION MATRIX" / "DESIGN NOTE" SHORTCUT.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
When the agent autonomously creates a roadmap, it owns the placement
|
|
112
|
+
in the **same response**:
|
|
113
|
+
|
|
114
|
+
- **Phase plan** (checkboxes, multi-turn execution) → `agents/roadmaps/<name>.md`, `status: ready` (default), regen dashboard.
|
|
115
|
+
- **Decision matrix / ADR / pattern / lookup** (no `Phase N`, durable rationale) → `agents/settings/contexts/<name>.md`.
|
|
116
|
+
- **Completed work snapshot** → `agents/roadmaps/archive/<name>.md`.
|
|
117
|
+
|
|
118
|
+
A non-trackable file in `agents/roadmaps/` is a rule violation — the
|
|
119
|
+
trackable CI fails it, the dashboard hides it. The agent that
|
|
120
|
+
created it moves it the same response. If the autonomous run also
|
|
121
|
+
**finishes** the roadmap within the session (every box `[x]`/`[~]`/`[-]`),
|
|
122
|
+
the completion-archival rule above fires too — same response.
|
|
123
|
+
|
|
124
|
+
## Autonomous execution — checkbox cadence
|
|
125
|
+
|
|
126
|
+
When executing a roadmap autonomously (multi-turn, no per-step user
|
|
127
|
+
prompt), the user loses progress visibility unless checkboxes flip
|
|
128
|
+
**as work lands**, not in a batch at the end. Iron Law:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
EVERY DONE STEP FLIPS [ ] → [x] IN NEXT REPLY THAT ACKNOWLEDGES IT.
|
|
132
|
+
NO "I UPDATE ROADMAP AT END OF PHASE."
|
|
133
|
+
NO "FOUR STEPS DONE, ONE COMMIT, ONE REGEN."
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Step counts as completed when:
|
|
137
|
+
|
|
138
|
+
- Code / docs change for that step has been **written and saved** AND
|
|
139
|
+
- Verification cited in the step (project CI command, targeted test, lint) has
|
|
140
|
+
**passed in this response or an earlier one** — fresh output, not memory.
|
|
141
|
+
|
|
142
|
+
Then in the **same reply**: flip the checkbox, regenerate the
|
|
143
|
+
dashboard, commit if commit policy allows.
|
|
144
|
+
|
|
145
|
+
**Forbidden:** four turns of step work, dashboard flat, single regen at the end.
|
|
146
|
+
**Required:** each turn — implement step, flip `[x]`, regen, commit (if policy allows).
|
|
147
|
+
A reply that lands a verified step without flipping its checkbox is a rule violation.
|
|
148
|
+
|
|
149
|
+
**Deterministic flip-guard.** The autonomous loop carries a per-step
|
|
150
|
+
guard at [`roadmap-process-loop § 5b`](../../contexts/execution/roadmap-process-loop.md#5b-flip-guard--deterministic):
|
|
151
|
+
after the atomic flip, the loop runs
|
|
152
|
+
`git diff --name-only -- agents/roadmaps/<file>.md` and halts loudly
|
|
153
|
+
when the diff is empty. The `command:` triggers on
|
|
154
|
+
`roadmap-progress-sync` keep the rule loaded for the entire
|
|
155
|
+
`/roadmap:process-*` run; the guard is the deterministic backstop
|
|
156
|
+
that catches a forgotten flip per step rather than at run end.
|
|
157
|
+
|
|
158
|
+
**`[~]` semantics — superseded note:** `[~]` is **not** an "in-progress"
|
|
159
|
+
indicator (the earlier in-progress-marker guidance here is superseded by
|
|
160
|
+
the glyph table in § Glyph semantics below — kept as the stronger, current
|
|
161
|
+
source of truth). Mid-reply work-in-flight has no checkbox change until
|
|
162
|
+
the step lands; that's a normal `[ ] → [x]` transition.
|
|
163
|
+
|
|
164
|
+
## Mechanics — triggers, regen command, self-check, failures
|
|
165
|
+
|
|
166
|
+
The triggers table, the regen command (`./agent-config roadmap:progress`),
|
|
167
|
+
the pre-send self-check, the failure-mode catalog and the `Do NOT` list are
|
|
168
|
+
**in this file**; the rule
|
|
169
|
+
[`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md) is the
|
|
170
|
+
obligation surface.
|
|
171
|
+
|
|
172
|
+
> **Corrected 2026-08-26.** This pointed at a `rules-auto` mechanics file that
|
|
173
|
+
> exists nowhere — a split that never happened, while the content was here.
|
|
174
|
+
|
|
175
|
+
## Copilot fallback
|
|
176
|
+
|
|
177
|
+
GitHub Copilot has no `PostToolUse` hook surface, so
|
|
178
|
+
`scripts/roadmap_progress_hook.ts` cannot detect roadmap-file writes
|
|
179
|
+
structurally. The dashboard at `agents/roadmaps-progress.md` will
|
|
180
|
+
not regenerate on its own.
|
|
181
|
+
|
|
182
|
+
The cooperative path: every time a roadmap touch fires (per the
|
|
183
|
+
trigger list in the mechanics context above), the agent regenerates
|
|
184
|
+
the dashboard in the same response — which is the same Iron Law the
|
|
185
|
+
hook enforces, just executed manually:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
./agent-config roadmap:progress
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
The hook implementation is the specification; on Copilot the agent
|
|
192
|
+
runs the regenerator itself after the same triggers fire. Skipping
|
|
193
|
+
it is a rule violation, not a hook gap — the Iron Law on dashboard
|
|
194
|
+
sync survives the missing hook surface.
|
|
195
|
+
|
|
196
|
+
## Migrated depth from the `roadmap-progress-sync` rule (per P4)
|
|
197
|
+
|
|
198
|
+
The sections below carry the long-form body of the
|
|
199
|
+
`roadmap-progress-sync` rule; the Iron-Law fences and the mandatory
|
|
200
|
+
pre-send self-check stay in the rule itself.
|
|
201
|
+
|
|
202
|
+
### Iron Law 2 — cadence detail
|
|
203
|
+
|
|
204
|
+
`/roadmap:process-step`, `/roadmap:process-phase`, `/roadmap:process-full`, and any other multi-step autonomous run flip the box for step N **before** moving on to step N+1. The checkbox itself is the real-time monitor — the markdown file is the source of truth, the dashboard is a derived view.
|
|
205
|
+
|
|
206
|
+
The `command:` triggers in the rule's frontmatter ensure it loads the moment one of the `/roadmap:process-*` commands is invoked and stays loaded for the whole run — independent of whether the agent is currently editing files under `agents/roadmaps/`. The loop carries its own deterministic flip-guard at `roadmap-process-loop § 5b` — defense-in-depth, not a substitute for the inline flip. (Merged with § Autonomous execution → "Deterministic flip-guard" above, which carries the concrete guard command.)
|
|
207
|
+
|
|
208
|
+
**Step counts as done** when its code/doc change is written and saved AND the verification cited in the step has passed (fresh output in this reply or an earlier one). (Merged with § Autonomous execution → "Step counts as completed" above — same contract.)
|
|
209
|
+
|
|
210
|
+
### Glyph semantics — single source of truth
|
|
211
|
+
|
|
212
|
+
Keep aligned with the dashboard counter in `scripts/update_roadmap_progress.ts` (regenerated via `./agent-config roadmap:progress`) and the closure-table in the `roadmap-management` skill:
|
|
213
|
+
|
|
214
|
+
| Glyph | Meaning | Counts towards |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| `[ ]` | open — planned, not yet done | `count_open` |
|
|
217
|
+
| `[x]` | done — work landed + verified | `count_done` |
|
|
218
|
+
| `[~]` | deferred — planned but not happening **this** run; resolution required before archive (Iron Law 3) | `count_deferred` |
|
|
219
|
+
| `[-]` | cancelled — scope dropped, won't happen at all | `count_cancelled` |
|
|
220
|
+
|
|
221
|
+
`[~]` is **not** an "in-progress" indicator. Mid-reply work-in-flight has no checkbox change until the step lands; that's a normal `[ ] → [x]` transition.
|
|
222
|
+
|
|
223
|
+
#### `guarded-baseline` — a sub-state of `[ ]`, never a fifth glyph
|
|
224
|
+
|
|
225
|
+
See [`guarded-baseline`](guarded-baseline.md).
|
|
226
|
+
|
|
227
|
+
**Dashboard regen cadence — opt-in batching.** The checkbox flip is non-batchable. The **subprocess regen** (`./agent-config roadmap:progress`) is batchable per `roadmap.dashboard_regen_cadence` in `.agent-settings.yml` (`every_5_steps` default · `per_step` · `phase_boundary`). Run end, phase boundary, and any file-shape touch (rename / phase add / archive — Iron Law 1) always force an immediate regen regardless of cadence.
|
|
228
|
+
|
|
229
|
+
**Blockers follow the same cadence as checkboxes.** Clearing a `## Blockers` entry (per `templates/roadmaps.md` rule 20) flips its `Status: resolved` and regenerates the dashboard in the same reply — Iron Law 1's "same response" obligation applies to blocker resolution exactly as it applies to a checkbox flip.
|
|
230
|
+
|
|
231
|
+
### Iron Law 3 — deferred-resolution flow
|
|
232
|
+
|
|
233
|
+
When the closure check fires (`count_open == 0` and `count_deferred > 0`), the agent MUST:
|
|
234
|
+
|
|
235
|
+
1. Enumerate every `[~]` step in the roadmap (phase + step text + any inline `<!-- deferred: ... -->` annotation).
|
|
236
|
+
2. Present numbered options (per the `user-interaction` rule) — at minimum:
|
|
237
|
+
1. **Follow-up roadmap (draft)** — spawn `agents/roadmaps/road-to-<slug>.md` with `status: draft` frontmatter, `parent_roadmap: <this-slug>`, and the deferred steps lifted verbatim into phases. Draft stays hidden from the dashboard until the user flips it to `ready`.
|
|
238
|
+
2. **Follow-up roadmap (ready, blocked)** — spawn the file with `status: ready` (default), frontmatter `parent_roadmap: <this-slug>` plus a body note (`> Blocked until <condition>`) so the dashboard surfaces it but execution waits.
|
|
239
|
+
3. **Keep in this archive** — confirm the deferred items stay searchable in the archived file; no follow-up roadmap. Choosing this records an explicit decision-to-drop in the same reply.
|
|
240
|
+
4. **Restore selected items to `[ ]`** — finish them in this roadmap before archive.
|
|
241
|
+
5. **Convert selected items to `[-]` cancelled** — drop them with rationale recorded inline.
|
|
242
|
+
3. Route by the **preservation test** — full table, recording contract and residual limit in [`roadmap-progress-sync § Who resolves it`](../../rules/roadmap-progress-sync.md). In one line: options 1, 2, 4 keep the item alive → council; 3 and 5 drop or weaken it → user, always; in doubt, user.
|
|
243
|
+
4. Only after the deferrals are resolved does the `git mv` to `archive/` run. The dashboard regen happens after the resolution, not before.
|
|
244
|
+
|
|
245
|
+
The migration mechanics (file naming, frontmatter pattern, body shape, parent-back-link) live in `roadmap-management § Spawn follow-up from deferred items`. The rule owns the obligation; the skill owns the procedure.
|
|
246
|
+
|
|
247
|
+
### Later disposition — detail
|
|
248
|
+
|
|
249
|
+
`later/` is the fourth disposition alongside `archive/` (done, none planned) and `skipped/` (won't pursue): open work remains but is blocked-for-later. Set frontmatter `status: later` + a `Blocked until` / `Trigger` resume line, `git mv` to `agents/roadmaps/later/`, migrate inbound `agents/roadmaps/<x>.md` refs to the new path, regen. Open `[ ]` items stay open — the roadmap is parked whole, not cancelled or deferred-item-by-item. `later/` is excluded from the dashboard and `/roadmap:process-*` (same as `archive/`/`skipped/`); the `lint_roadmap_later_disposition` guard enforces the `status: later` ⇔ `later/` placement contract and that every parked roadmap records a resume condition. Procedure + the Active-vs-Later test live in the `roadmap-management` skill.
|
|
250
|
+
|
|
251
|
+
### PR-gate — detail
|
|
252
|
+
|
|
253
|
+
A roadmap that reaches `count_open == 0 && count_deferred == 0` is **complete**
|
|
254
|
+
and is archived **in the same PR that completes it** — deterministically, by a
|
|
255
|
+
script, before the PR exists. There is no "hold the last item open + archive
|
|
256
|
+
manually after merge" step (that step got forgotten and left finished roadmaps
|
|
257
|
+
rotting unarchived in the trunk — the exact failure this gate makes impossible).
|
|
258
|
+
|
|
259
|
+
The sweep — `scripts/archive_completed_roadmaps.ts`, invoked by
|
|
260
|
+
`/create-pr` § 1c — archives every roadmap that is
|
|
261
|
+
complete **and** touched in this branch (`git log origin/main..HEAD`), `git mv`s
|
|
262
|
+
it to `archive/`, migrates inbound `agents/roadmaps/<x>.md` references to the
|
|
263
|
+
archive path in the **same branch** (so links never break — this was the only
|
|
264
|
+
real reason the old design deferred archival), regenerates the dashboard, and
|
|
265
|
+
stages it. Completion is read from the checkbox counts; no marker is required.
|
|
266
|
+
|
|
267
|
+
**Backstop:** `./agent-config roadmap:progress-check` (wrapping `update_roadmap_progress.ts --check`) hard-fails when a roadmap
|
|
268
|
+
hits `count_open == 0` while still under `agents/roadmaps/`. Because
|
|
269
|
+
`/create-pr` archives before the push, the PR branch is green; a push that
|
|
270
|
+
bypasses the sweep red-flags in CI — the forcing function that makes
|
|
271
|
+
"finished roadmap left unarchived in the trunk" structurally impossible. Legacy
|
|
272
|
+
`merge-gated` annotations are archived by the next `/create-pr` like any other
|
|
273
|
+
completed roadmap; the dashboard still surfaces any stranded
|
|
274
|
+
complete-but-unarchived roadmap so it can never hide inside a partial progress bar.
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Role Contracts
|
|
2
|
+
|
|
3
|
+
Six named working modes with a fixed output contract per mode. Loading
|
|
4
|
+
a role frame stabilizes smaller models: they stop inventing a frame per
|
|
5
|
+
task and produce reproducible outputs on the same input.
|
|
6
|
+
|
|
7
|
+
Referenced by `road-to-role-modes.md` Phase 1. Each contract is a
|
|
8
|
+
*skeleton*, not a form — fields without evidence become questions via
|
|
9
|
+
`ask-when-uncertain`, never fabrications.
|
|
10
|
+
|
|
11
|
+
## The six modes
|
|
12
|
+
|
|
13
|
+
| Mode | Entry signal | Default skills | Output contract |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| **Developer** | "implement X", `/jira-ticket`, `/bug-fix` | `php-coder`, `laravel`, `test-driven-development`, `quality-tools` | Goal / Plan / Changes / Tests / Open questions |
|
|
16
|
+
| **Reviewer** | `/review-changes`, `/judge`, PR open on branch | `judge-bug-hunter`, `judge-code-quality`, `judge-security-auditor`, `judge-test-coverage` | Summary / Risks / Findings / Required actions / Verdict |
|
|
17
|
+
| **Tester** | "add tests", "why does X fail", test output in context | `pest-testing`, `api-testing`, `e2e-plan`, `test-performance` | Behaviour under test / Edge cases / Negative paths / Reproduction / Coverage gaps |
|
|
18
|
+
| **PO** | "I want a feature", `/feature-explore`, `/feature-plan` | `validate-feature-fit`, `api-design`, `threat-modeling` | Goal / Assumptions / Acceptance criteria / Impacted modules / Risks / Open questions for stakeholder |
|
|
19
|
+
| **Incident** | "production is down", `break-glass: true`, hotfix branch | `bug-investigate`, `systematic-debugging`, `authz-review` | Symptom / Reproduction / Minimal reversible change / Deferred verification / Follow-up commitment / Incident learning |
|
|
20
|
+
| **Planner** | "what's the strategy", `/feature-roadmap`, multi-step work with unclear order | `feature-plan`, `feature-roadmap`, `blast-radius-analyzer` | Goal / Constraints / Option set / Recommendation / Dependencies / Rollback |
|
|
21
|
+
|
|
22
|
+
## Contract skeletons
|
|
23
|
+
|
|
24
|
+
### Developer
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
**Goal:** <what the user asked for, one sentence>
|
|
28
|
+
**Plan:** <ordered steps, ≤5>
|
|
29
|
+
**Changes:** <files touched, one line each>
|
|
30
|
+
**Tests:** <added/updated tests + how to run>
|
|
31
|
+
**Open questions:** <unresolved items, none if blank>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Reviewer
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
**Summary:** <one-paragraph overview of the diff>
|
|
38
|
+
**Risks:** <ranked list: high/medium/low>
|
|
39
|
+
**Findings:** <file:line → issue → fix suggestion>
|
|
40
|
+
**Required actions:** <numbered list the author must address>
|
|
41
|
+
**Verdict:** approve | request changes | block
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Tester
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
**Behaviour under test:** <the invariant, one sentence>
|
|
48
|
+
**Edge cases:** <boundary + error paths covered>
|
|
49
|
+
**Negative paths:** <expected failures, error types>
|
|
50
|
+
**Reproduction:** <how to run a single failing case>
|
|
51
|
+
**Coverage gaps:** <what stayed untested and why>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### PO
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
**Goal:** <user-facing outcome>
|
|
58
|
+
**Assumptions:** <each marked `verify with: {name}` if unconfirmed>
|
|
59
|
+
**Acceptance criteria:** <testable, numbered>
|
|
60
|
+
**Impacted modules:** <paths, not speculation>
|
|
61
|
+
**Risks:** <business + technical>
|
|
62
|
+
**Open questions for stakeholder:** <blocking decisions only>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Incident
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
**Symptom:** <what users see, not the hypothesis>
|
|
69
|
+
**Reproduction:** <minimal steps or "not reproduced">
|
|
70
|
+
**Minimal reversible change:** <the smallest fix>
|
|
71
|
+
**Deferred verification:** <what was skipped under break-glass>
|
|
72
|
+
**Follow-up commitment:** <PR/ticket for full verification, due date>
|
|
73
|
+
**Incident learning:** <intake signal id, OR `/memory-add incident-learnings` draft ref>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Memory-write is the final field, not a nice-to-have.** Before the
|
|
77
|
+
mode exits, the agent MUST either emit an intake signal via
|
|
78
|
+
[`memory-access`](memory-access.md) (`scripts/memory_signal.ts`
|
|
79
|
+
append — one line, fire-and-forget) or draft a curated entry with
|
|
80
|
+
[`/memory-add incident-learnings`](../../../src/domains/meta/memory/add/command.md).
|
|
81
|
+
Pattern + consequence + guardrail, redacted. Skipping this field
|
|
82
|
+
means the incident did not produce a learning — log the absence,
|
|
83
|
+
do not pretend verification happened.
|
|
84
|
+
|
|
85
|
+
### Planner
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
**Goal:** <target state, one paragraph>
|
|
89
|
+
**Constraints:** <hard limits: time, deps, policy>
|
|
90
|
+
**Option set:** <2-4 options with trade-offs>
|
|
91
|
+
**Recommendation:** <which option + one-line justification>
|
|
92
|
+
**Dependencies:** <what must ship first>
|
|
93
|
+
**Rollback:** <how to revert if it fails>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Integration rules
|
|
97
|
+
|
|
98
|
+
- **`ask-when-uncertain`** — any contract field without evidence becomes
|
|
99
|
+
a question, not a guess. The contract does not license fabrication.
|
|
100
|
+
- **`scope-control`** — `Reviewer` mode forbids implementation work.
|
|
101
|
+
`Developer` mode forbids producing review verdicts on own code.
|
|
102
|
+
`PO` mode forbids committing to absent stakeholders' decisions.
|
|
103
|
+
- **`preservation-guard`** — no mode justifies rewriting or removing
|
|
104
|
+
existing skills. Modes *compose* skills, they do not replace them.
|
|
105
|
+
- **`verify-before-complete`** — the final field of every contract is
|
|
106
|
+
an evidence field (Tests, Verdict, Reproduction, Acceptance criteria,
|
|
107
|
+
Deferred verification, Rollback). No mode ships without it.
|
|
108
|
+
|
|
109
|
+
## When to load a contract
|
|
110
|
+
|
|
111
|
+
- **Explicit**: user invokes a command in the entry-signal column.
|
|
112
|
+
- **Inferred**: first message matches a signal — surface one line
|
|
113
|
+
(`> entering {mode} mode — contract: {fields}`) and continue.
|
|
114
|
+
- **Overridden**: user says "no mode" or invokes `/mode none` — drop
|
|
115
|
+
the frame and fall back to default conversation.
|
|
116
|
+
|
|
117
|
+
## Structured mode markers
|
|
118
|
+
|
|
119
|
+
Every contract output MUST begin with a one-line HTML comment so
|
|
120
|
+
session captures, log scrapers, and the measurement hook can count
|
|
121
|
+
contract-conformant outputs per mode:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
<!-- role-mode: developer | contract: goal,plan,changes,tests,open-questions -->
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The marker is:
|
|
128
|
+
|
|
129
|
+
- **Invisible** in rendered markdown — no UI noise.
|
|
130
|
+
- **Greppable** with a stable prefix (`role-mode:`).
|
|
131
|
+
- **Self-describing** — `contract:` lists the fields in kebab-case and
|
|
132
|
+
in the order they must appear, so a scraper can verify conformance
|
|
133
|
+
without hardcoding the mode→contract map.
|
|
134
|
+
|
|
135
|
+
Reserved values for `role-mode`:
|
|
136
|
+
|
|
137
|
+
- `developer` · `reviewer` · `tester` · `po` · `incident` · `planner`
|
|
138
|
+
|
|
139
|
+
Any other value is treated as non-conformant. A reply with no marker
|
|
140
|
+
counts as the default "no-mode" conversation and does not feed the
|
|
141
|
+
mode statistics.
|
|
142
|
+
|
|
143
|
+
## Personas (advisory pairings)
|
|
144
|
+
|
|
145
|
+
Modes own the **workflow closing contract**. Personas own the
|
|
146
|
+
**voice** a skill brings to the work. They compose: a skill invoked
|
|
147
|
+
inside a mode can cite one or more personas to shape *how* it
|
|
148
|
+
reviews, reasons, or pushes back — without changing the mode's
|
|
149
|
+
output contract.
|
|
150
|
+
|
|
151
|
+
This table is **advisory**, not enforcing. A skill may cite any
|
|
152
|
+
persona inside any mode; the mapping below is just the most common
|
|
153
|
+
fit. See [`../../personas/README.md`](../../personas/README.md) for
|
|
154
|
+
the persona catalog and schema.
|
|
155
|
+
|
|
156
|
+
| Mode | Typical persona companions | Why |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| **Developer** | `developer`, `ai-agent` | Implementation voice + automation-readiness check on the plan |
|
|
159
|
+
| **Reviewer** | `critical-challenger`, `senior-engineer`, `qa` | Fake-clarity hunt, architectural lock-in, coverage gaps |
|
|
160
|
+
| **Tester** | `qa`, `developer` | Testability lens + implementation-reality sanity check |
|
|
161
|
+
| **PO** | `product-owner`, `stakeholder`, `critical-challenger` | Outcome/AC, business fit, challenge hidden assumptions |
|
|
162
|
+
| **Incident** | `senior-engineer`, `developer` | Smallest reversible change + long-term risk on the hotfix |
|
|
163
|
+
| **Planner** | `senior-engineer`, `stakeholder`, `critical-challenger` | Architecture impact, business framing, option-set honesty |
|
|
164
|
+
|
|
165
|
+
### Invocation
|
|
166
|
+
|
|
167
|
+
Skills cite personas in frontmatter:
|
|
168
|
+
|
|
169
|
+
```yaml
|
|
170
|
+
---
|
|
171
|
+
name: requesting-code-review
|
|
172
|
+
personas: [critical-challenger]
|
|
173
|
+
---
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Commands accept a CLI-style override that wins over the skill default:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
/refine-ticket --personas=product-owner,senior-engineer,+qa
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Prefix `+` adds a persona to the default cast; prefix `-` removes one.
|
|
183
|
+
Omitting `--personas` uses the skill's documented default.
|
|
184
|
+
|
|
185
|
+
### Conflict resolution
|
|
186
|
+
|
|
187
|
+
If the active mode forbids an action and a persona would push for
|
|
188
|
+
that action (e.g. Reviewer mode + `developer` persona suggesting an
|
|
189
|
+
implementation fix), the agent surfaces a numbered-options prompt per
|
|
190
|
+
[`agent-interaction-and-decision-quality.md`](agent-interaction-and-decision-quality.md) —
|
|
191
|
+
never silently switches mode, never silently drops the persona
|
|
192
|
+
finding. See the Q4 rule in `road-to-personas.md`.
|
|
193
|
+
|
|
194
|
+
## Anti-patterns
|
|
195
|
+
|
|
196
|
+
- **Do NOT** mix two contracts in one reply. If the task shifts
|
|
197
|
+
(review → fix), close the current contract first with its evidence
|
|
198
|
+
field, then enter the next mode.
|
|
199
|
+
- **Do NOT** invent fields the contract does not list. The skeleton
|
|
200
|
+
is the maximum surface, not the minimum.
|
|
201
|
+
- **Do NOT** hand-wave the final evidence field ("tests should pass").
|
|
202
|
+
Run the verification or mark it as deferred with a follow-up commit.
|
|
203
|
+
- **Do NOT** treat the default-skills list as mandatory. The skills
|
|
204
|
+
are pre-loaded; the contract decides which get invoked.
|
|
205
|
+
|
|
206
|
+
## See also
|
|
207
|
+
|
|
208
|
+
- [`output-patterns.md`](output-patterns.md) — generic output conventions modes inherit
|
|
209
|
+
- [`agent-interaction-and-decision-quality.md`](agent-interaction-and-decision-quality.md) — how modes interact with the numbered-options protocol
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Role Mode Router
|
|
2
|
+
|
|
3
|
+
Maps common entry signals to the correct role mode defined in
|
|
4
|
+
[`role-contracts`](role-contracts.md). The router is advisory —
|
|
5
|
+
it proposes a mode, the user can veto with `/mode none`.
|
|
6
|
+
|
|
7
|
+
## Entry signal → mode
|
|
8
|
+
|
|
9
|
+
| Signal pattern | Inferred mode |
|
|
10
|
+
|---|---|
|
|
11
|
+
| "implement X", "add feature", `/jira-ticket`, `/bug-fix` | `developer` |
|
|
12
|
+
| `/review-changes`, `/judge`, "review this PR", PR open on active branch | `reviewer` |
|
|
13
|
+
| "add tests", "why does X fail", test output pasted in context | `tester` |
|
|
14
|
+
| "I want a feature", `/feature-explore`, `/feature-plan`, "what should it do" | `po` |
|
|
15
|
+
| "production is down", `break-glass: true`, hotfix branch, live incident framing | `incident` |
|
|
16
|
+
| "what's the strategy", `/feature-roadmap`, multi-step work with unclear order | `planner` |
|
|
17
|
+
|
|
18
|
+
The signals are **non-exclusive**. When two patterns match, prefer the
|
|
19
|
+
narrower one (`incident` > `developer`; `reviewer` > `tester`).
|
|
20
|
+
|
|
21
|
+
## Surfacing the inferred switch
|
|
22
|
+
|
|
23
|
+
Before doing any work, the agent emits **one line** in the user's
|
|
24
|
+
language (per `language-and-tone`):
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
> entering {mode} mode — contract: {goal-field} / {constraints-field} / {output-field}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This is the only announcement. Do not narrate the reasoning for the
|
|
31
|
+
mode choice. If the user is silent, proceed; if they reply
|
|
32
|
+
`/mode none` or `/mode <other>`, switch immediately.
|
|
33
|
+
|
|
34
|
+
## When NOT to infer
|
|
35
|
+
|
|
36
|
+
- `roles.active_role` is already non-empty in `.agent-settings.yml` —
|
|
37
|
+
respect the explicit setting; do not second-guess it.
|
|
38
|
+
- `roles.default_role` is set and matches the inferred mode — still
|
|
39
|
+
surface the announcement (it reassures the user the frame loaded).
|
|
40
|
+
- No signal matches — **do NOT guess**. Stay mode-less and let
|
|
41
|
+
`ask-when-uncertain` handle the scope question.
|
|
42
|
+
|
|
43
|
+
## Precedence
|
|
44
|
+
|
|
45
|
+
1. Explicit `/mode <name>` in the current message — wins absolutely.
|
|
46
|
+
2. `roles.active_role` from `.agent-settings.yml` — sticky within session.
|
|
47
|
+
3. Router inference from the entry signal table above.
|
|
48
|
+
4. `roles.default_role` fallback — only when no signal matches.
|
|
49
|
+
5. No mode — rule `role-mode-adherence` stays inert.
|
|
50
|
+
|
|
51
|
+
## Veto path
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
> 1. Switch to {mode-b} — run /mode {mode-b}
|
|
55
|
+
> 2. Stay in {mode-a}
|
|
56
|
+
> 3. Clear mode — run /mode none
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The agent MUST use numbered options (per `user-interaction`) and accept
|
|
60
|
+
both the number and the spelled-out slash command.
|
|
61
|
+
|
|
62
|
+
## Interactions
|
|
63
|
+
|
|
64
|
+
- [`role-contracts`](role-contracts.md) — the contracts this router targets.
|
|
65
|
+
- [`role-mode-adherence`](../../rules/role-mode-adherence.md) — enforces
|
|
66
|
+
the contract once a mode is active.
|
|
67
|
+
- [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — the
|
|
68
|
+
fallback when no signal matches.
|
|
69
|
+
- [`/mode`](../../../src/domains/meta/mode/command.md) — user-facing override.
|
|
70
|
+
|
|
71
|
+
## Signal table maintenance
|
|
72
|
+
|
|
73
|
+
The table lives here, not in `role-contracts.md`. Commands and rules
|
|
74
|
+
reference modes by slug only — the routing layer is the single place
|
|
75
|
+
that maps free-form intent to a slug. Add a signal only when:
|
|
76
|
+
|
|
77
|
+
- ≥3 real sessions in `agents/sessions/` have surfaced the same pattern.
|
|
78
|
+
- The pattern does not collide with an existing row (check neighbours).
|
|
79
|
+
- The inferred mode is one of the six — never invent a seventh.
|
|
80
|
+
|
|
81
|
+
Signals captured but not yet promoted live in a scratch list at the
|
|
82
|
+
bottom of this file (delete when promoted).
|
|
83
|
+
|
|
84
|
+
## Scratch list (candidates)
|
|
85
|
+
|
|
86
|
+
<!-- Add `{signal} → {mode}` lines here; promote to the table above
|
|
87
|
+
only after the criteria in the previous section are met. -->
|
|
88
|
+
|
|
89
|
+
_None yet._
|