@event4u/agent-config 7.5.0 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +8 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +317 -260
- package/README.md +35 -5
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +1 -1
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/incident.md +2 -2
- package/dist/agent-src/commands/analyze/near-miss.md +2 -2
- package/dist/agent-src/commands/analyze/postmortem.md +2 -2
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/cost-report.md +25 -0
- package/dist/agent-src/commands/evals/analyze.json +30 -0
- package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +1 -1
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/load.md +12 -11
- package/dist/agent-src/commands/memory/promote.md +30 -0
- package/dist/agent-src/commands/memory/propose.md +16 -2
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +11 -7
- package/dist/agent-src/commands/optimize-project.md +243 -0
- package/dist/agent-src/commands/optimize.md +5 -0
- package/dist/agent-src/commands/pr/create.md +37 -8
- package/dist/agent-src/commands/prediction-pool.md +2 -2
- package/dist/agent-src/commands/profile/activate.md +3 -3
- package/dist/agent-src/commands/profile/deactivate.md +2 -2
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research/deep.md +5 -0
- package/dist/agent-src/commands/research/report.md +2 -1
- package/dist/agent-src/commands/roadmap/create.md +88 -10
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +15 -2
- package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
- package/dist/agent-src/commands/roadmap/process-step.md +4 -0
- package/dist/agent-src/commands/roadmap.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +1 -1
- package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
- package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
- package/dist/agent-src/commands/team-knowledge.md +64 -0
- package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
- package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
- package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
- package/dist/agent-src/contexts/override-system.md +1 -1
- package/dist/agent-src/personas/brand-strategist.md +0 -1
- package/dist/agent-src/personas/data-integrity.md +66 -0
- package/dist/agent-src/personas/design-director.md +0 -1
- package/dist/agent-src/personas/performance-engineer.md +66 -0
- package/dist/agent-src/personas/production-validator.md +73 -0
- package/dist/agent-src/rules/agent-authority.md +3 -4
- package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
- package/dist/agent-src/rules/architecture.md +2 -4
- package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
- package/dist/agent-src/rules/artifact-engagement-recording.md +2 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
- package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
- package/dist/agent-src/rules/autonomous-execution.md +3 -5
- package/dist/agent-src/rules/brand-consistency.md +3 -5
- package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
- package/dist/agent-src/rules/cli-output-handling.md +4 -6
- package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
- package/dist/agent-src/rules/commit-conventions.md +3 -5
- package/dist/agent-src/rules/commit-policy.md +18 -10
- package/dist/agent-src/rules/content-quoting-floor.md +88 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -5
- package/dist/agent-src/rules/copilot-routing.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
- package/dist/agent-src/rules/delegation-policy.md +10 -6
- package/dist/agent-src/rules/design-fidelity.md +3 -5
- package/dist/agent-src/rules/devcontainer-routing.md +4 -6
- package/dist/agent-src/rules/direct-answers.md +13 -17
- package/dist/agent-src/rules/docker-commands.md +3 -5
- package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
- package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
- package/dist/agent-src/rules/domain-safety-pii.md +3 -5
- package/dist/agent-src/rules/domain-safety-retention.md +3 -5
- package/dist/agent-src/rules/downstream-changes.md +3 -4
- package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
- package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
- package/dist/agent-src/rules/finance-safety-floor.md +3 -6
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
- package/dist/agent-src/rules/git-history-discipline.md +3 -5
- package/dist/agent-src/rules/guidelines.md +2 -4
- package/dist/agent-src/rules/icon-consistency.md +3 -5
- package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
- package/dist/agent-src/rules/improve-before-implement.md +5 -5
- package/dist/agent-src/rules/invite-challenge.md +3 -5
- package/dist/agent-src/rules/language-and-tone.md +13 -15
- package/dist/agent-src/rules/laravel-routing.md +3 -5
- package/dist/agent-src/rules/laravel-translations.md +3 -5
- package/dist/agent-src/rules/legal-safety-floor.md +3 -5
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
- package/dist/agent-src/rules/media-governance-routing.md +3 -5
- package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
- package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
- package/dist/agent-src/rules/missing-tool-handling.md +3 -5
- package/dist/agent-src/rules/model-recommendation.md +4 -6
- package/dist/agent-src/rules/no-attribution-footers.md +3 -5
- package/dist/agent-src/rules/no-cheap-questions.md +5 -8
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
- package/dist/agent-src/rules/no-roadmap-references.md +3 -5
- package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
- package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
- package/dist/agent-src/rules/onboarding-gate.md +4 -6
- package/dist/agent-src/rules/output-discipline.md +3 -5
- package/dist/agent-src/rules/package-ci-checks.md +3 -5
- package/dist/agent-src/rules/persona-governance.md +2 -4
- package/dist/agent-src/rules/php-coding.md +3 -5
- package/dist/agent-src/rules/preservation-guard.md +2 -4
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
- package/dist/agent-src/rules/reviewer-awareness.md +5 -6
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
- package/dist/agent-src/rules/role-mode-adherence.md +2 -4
- package/dist/agent-src/rules/rule-type-governance.md +3 -5
- package/dist/agent-src/rules/runtime-safety.md +2 -4
- package/dist/agent-src/rules/scope-control.md +10 -11
- package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
- package/dist/agent-src/rules/size-enforcement.md +2 -4
- package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
- package/dist/agent-src/rules/skill-quality.md +3 -5
- package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
- package/dist/agent-src/rules/source-confidentiality.md +3 -5
- package/dist/agent-src/rules/source-discovery-gate.md +3 -5
- package/dist/agent-src/rules/source-of-truth.md +3 -5
- package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
- package/dist/agent-src/rules/symfony-routing.md +4 -6
- package/dist/agent-src/rules/telegraph-speak.md +4 -5
- package/dist/agent-src/rules/think-before-action.md +7 -4
- package/dist/agent-src/rules/token-budget-discipline.md +29 -5
- package/dist/agent-src/rules/token-efficiency.md +3 -5
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
- package/dist/agent-src/rules/tool-safety.md +2 -4
- package/dist/agent-src/rules/ui-audit-gate.md +3 -6
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -5
- package/dist/agent-src/rules/upstream-proposal.md +4 -6
- package/dist/agent-src/rules/user-interaction.md +7 -5
- package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
- package/dist/agent-src/rules/verify-before-complete.md +12 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
- package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
- package/dist/agent-src/skills/adr-create/SKILL.md +48 -42
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
- package/dist/agent-src/skills/brand/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
- package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -3
- package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
- package/dist/agent-src/skills/code-review/SKILL.md +1 -0
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
- package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
- package/dist/agent-src/skills/context-document/SKILL.md +17 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
- package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +5 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +10 -4
- package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
- package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
- package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
- package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/laravel/SKILL.md +0 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
- package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/premortem/SKILL.md +0 -3
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +46 -45
- package/dist/agent-src/skills/roadmap-management/SKILL.md +21 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +32 -2
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
- package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +29 -0
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
- package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
- package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agent-settings.md +22 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
- package/dist/agent-src/templates/roadmaps.md +70 -2
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +3 -3
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
- package/dist/agent-src/templates/tickets.md +8 -8
- package/dist/cli/commands/recordTriggerEval.test.js +1 -1
- package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
- package/dist/cli/initRouting.js +4 -2
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +718 -240
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +43 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +29 -18
- package/dist/install/preflight.js +173 -0
- package/dist/install/preflight.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +1 -1
- package/dist/server/routes/settings.js +4 -0
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +108 -0
- package/docs/MIGRATION.md +3 -3
- package/docs/architecture.md +5 -5
- package/docs/archive/CHANGELOG-pre-8.0.0.md +301 -0
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +70 -60
- package/docs/command-flows.md +15 -3
- package/docs/comparison.yaml +35 -0
- package/docs/contracts/agents-layout.md +148 -0
- package/docs/contracts/brand-token-consumption.md +5 -0
- package/docs/contracts/capability-boundary.md +5 -0
- package/docs/contracts/command-category-governance.md +5 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -1
- package/docs/contracts/conformance.md +84 -0
- package/docs/contracts/creative-pack-boundary.md +5 -0
- package/docs/contracts/discovery-manifest.schema.json +5 -4
- package/docs/contracts/file-ownership-matrix.json +4605 -985
- package/docs/contracts/governance-enforcement-projection.md +5 -0
- package/docs/contracts/gui-wizard.md +1 -1
- package/docs/contracts/hook-architecture-v1.md +2 -2
- package/docs/contracts/implement-ticket-flow.md +1 -1
- package/docs/contracts/kernel-membership.md +13 -0
- package/docs/contracts/mcp-tool-inventory.md +23 -23
- package/docs/contracts/no-runtime-boundary.md +6 -1
- package/docs/contracts/review-lens-schema.md +5 -0
- package/docs/contracts/rule-router.md +102 -8
- package/docs/contracts/skill-bundled-assets.md +1 -1
- package/docs/contracts/skill-dry-run.md +1 -1
- package/docs/contracts/subagent-boundary.md +5 -0
- package/docs/contracts/ticket-bundle-format.md +9 -4
- package/docs/contracts/tier-3-contrib-plugin.md +2 -2
- package/docs/contracts/write-engine.md +3 -0
- package/docs/customization.md +87 -15
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
- package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/distribution/awesome-list-submission.md +46 -0
- package/docs/distribution/launch-story-draft.md +58 -0
- package/docs/end-to-end-walkthroughs.md +2 -2
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
- package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
- package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/guidelines/code-clarity.md +19 -0
- package/docs/guidelines/design-antipatterns-triggers.json +2 -1
- package/docs/guidelines/design-antipatterns.md +10 -1
- package/docs/guidelines/design-modes.md +6 -0
- package/docs/guidelines/php/general.md +9 -1
- package/docs/guidelines/php/php-coding-patterns.md +7 -0
- package/docs/guides/cross-repo-retrieval.md +1 -1
- package/docs/guides/frontend-design-corpus-refresh.md +2 -2
- package/docs/guides/local-analytics.md +4 -4
- package/docs/guides/skill-discovery.md +1 -1
- package/docs/guides/skill-preview.md +1 -1
- package/docs/hook-payload-capture.md +6 -6
- package/docs/install-friction-report.md +66 -0
- package/docs/installation.md +1 -1
- package/docs/maintainers/optional-media-deps.md +50 -0
- package/docs/mcp-server.md +11 -12
- package/docs/media/proof-demo.cast +14 -0
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +1 -1
- package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
- package/docs/migration/node-floor.md +1 -1
- package/docs/migration/yaml-roundtrip-spike.md +1 -1
- package/docs/personas.md +16 -5
- package/docs/positioning-evidence.md +86 -0
- package/docs/proof.md +86 -0
- package/docs/skills-catalog.md +1 -1
- package/docs/troubleshooting.md +8 -8
- package/docs/wedge/production-validator/README.md +57 -0
- package/docs/wedge/production-validator/production-validator.md +56 -0
- package/docs/wizard.md +2 -2
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +59 -4
- package/src/config/agents-paths.yml +254 -0
- package/src/config/budgets.yml +16 -0
- package/src/config/discovery/packs.yml +1 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/gitignore-block.txt +25 -0
- package/src/config/host-capabilities.yml +31 -0
- package/src/config/profiles/balanced.ini +4 -0
- package/src/config/profiles/full.ini +4 -0
- package/src/config/profiles/minimal.ini +4 -0
- package/src/scripts/_cli/cmd_conformance.ts +716 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -2
- package/src/scripts/_cli/cmd_fleet.ts +401 -0
- package/src/scripts/_cli/cmd_preflight.ts +159 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/knowledge_events.ts +193 -0
- package/src/scripts/_lib/subagent_steering.ts +115 -3
- package/src/scripts/_lib/text_similarity.ts +75 -0
- package/src/scripts/ai-video/test-pipeline.sh +1 -1
- package/src/scripts/ai_council/clients.ts +19 -3
- package/src/scripts/append_contested.ts +112 -0
- package/src/scripts/audit_auto_rules.ts +11 -1
- package/src/scripts/audit_mcp_tools.ts +25 -11
- package/src/scripts/bench_ab_v2_run.ts +527 -40
- package/src/scripts/bench_ab_v2_stats.ts +6 -0
- package/src/scripts/bench_matrix.ts +266 -0
- package/src/scripts/bootstrap_knowledge.ts +267 -0
- package/src/scripts/build_discovery_manifest.ts +42 -2
- package/src/scripts/build_proof.ts +214 -0
- package/src/scripts/check_always_budget.ts +3 -0
- package/src/scripts/check_augment_description_cap.ts +2 -2
- package/src/scripts/check_claims.ts +270 -0
- package/src/scripts/check_comparison.ts +79 -0
- package/src/scripts/check_generated_artefact_headers.ts +109 -0
- package/src/scripts/check_generator_output_coverage.ts +142 -0
- package/src/scripts/check_gitignore_freshness.ts +127 -0
- package/src/scripts/check_knowledge_pages.ts +210 -0
- package/src/scripts/check_knowledge_sharing.ts +162 -0
- package/src/scripts/check_media_deps.ts +91 -0
- package/src/scripts/check_memory_contradiction.ts +280 -0
- package/src/scripts/check_memory_similarity.ts +134 -0
- package/src/scripts/check_quality_regression.ts +56 -10
- package/src/scripts/check_references.ts +3 -1
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_site_links.ts +135 -0
- package/src/scripts/check_skill_gaps.ts +99 -0
- package/src/scripts/check_token_quality_golden.ts +197 -11
- package/src/scripts/check_tracked_but_ignored.ts +67 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +30 -3
- package/src/scripts/condense.ts +350 -14
- package/src/scripts/consolidate_knowledge_events.ts +192 -0
- package/src/scripts/degrade_to_pointer.ts +136 -0
- package/src/scripts/design_slop_rules.test.ts +15 -0
- package/src/scripts/design_slop_rules.ts +28 -0
- package/src/scripts/emit_knowledge_event.ts +158 -0
- package/src/scripts/export_replay_corpus.ts +187 -0
- package/src/scripts/external_sources_denylist.json +7 -2
- package/src/scripts/fold_intake.ts +281 -0
- package/src/scripts/generate_capability_matrix.ts +9 -1
- package/src/scripts/generate_knowledge_index.ts +222 -0
- package/src/scripts/hook_manifest.yaml +26 -14
- package/src/scripts/hooks/dispatch_hook.ts +18 -0
- package/src/scripts/hot_context_hook.ts +372 -0
- package/src/scripts/install +47 -0
- package/src/scripts/install-hooks.sh +17 -0
- package/src/scripts/inventory_meta_layers.ts +11 -0
- package/src/scripts/janitor.ts +258 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
- package/src/scripts/lint_knowledge_scale.ts +250 -0
- package/src/scripts/lint_legal_pack.ts +67 -0
- package/src/scripts/lint_persona_governance.ts +8 -3
- package/src/scripts/lint_regression.ts +15 -0
- package/src/scripts/lint_roadmap_blockers.ts +202 -0
- package/src/scripts/lint_roadmap_complexity.ts +81 -2
- package/src/scripts/lint_subagent_determinism.ts +125 -0
- package/src/scripts/measure_augment_budget.ts +46 -6
- package/src/scripts/measure_patterns.ts +4 -3
- package/src/scripts/measure_skill_reduction.ts +6 -6
- package/src/scripts/migration_status.ts +6 -2
- package/src/scripts/mine_missing_guardrails.ts +189 -0
- package/src/scripts/parity/phase_gate.ts +1 -1
- package/src/scripts/parity/replay.ts +21 -0
- package/src/scripts/project_thin_rules.ts +120 -16
- package/src/scripts/release.ts +39 -1
- package/src/scripts/render_benchmark_composite.ts +378 -0
- package/src/scripts/roadmap_progress_hook.ts +101 -43
- package/src/scripts/schemas/skill.schema.json +27 -0
- package/src/scripts/schemas/subagent.schema.json +106 -0
- package/src/scripts/skill_linter.ts +1 -0
- package/src/scripts/smoke/kernel.sh +5 -4
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_gitignore.ts +4 -0
- package/src/scripts/update_skill_candidates.ts +172 -0
- package/src/scripts/validate_frontmatter.ts +1 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "wireframe",
|
|
3
|
+
"last_eval": "2026-07-06",
|
|
4
|
+
"description": "5 should-trigger + 5 should-not-trigger. Should-trigger covers lo-fi structure/flow exploration. Should-not-trigger covers near-miss neighbors: design-variations (hi-fi options), fe-design (single implementation), design-review (review existing), design-intelligence (direction selection).",
|
|
5
|
+
"queries": [
|
|
6
|
+
{"q": "sketch a few rough directions for the onboarding flow", "trigger": true},
|
|
7
|
+
{"q": "wireframe the sign-up: single page vs multi-step wizard", "trigger": true},
|
|
8
|
+
{"q": "explore some layout ideas for the dashboard before we style it", "trigger": true},
|
|
9
|
+
{"q": "I'm not sure about the information hierarchy — sketch some low-fi options", "trigger": true},
|
|
10
|
+
{"q": "storyboard three ways the checkout flow could work", "trigger": true},
|
|
11
|
+
{"q": "show me 3 styled design options for the hero section", "trigger": false, "note": "hi-fi options → design-variations"},
|
|
12
|
+
{"q": "build the settings page component", "trigger": false, "note": "single implementation → fe-design / stack executor"},
|
|
13
|
+
{"q": "review this mockup for problems", "trigger": false, "note": "review of existing design → design-review"},
|
|
14
|
+
{"q": "pick a visual direction and font pairing for the app", "trigger": false, "note": "direction selection → design-intelligence / typography-system"},
|
|
15
|
+
{"q": "generate a moodboard image of the landing page", "trigger": false, "note": "image generation → image-provider-routing"}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -43,7 +43,28 @@ made by the user directly or by the agent on request, following the
|
|
|
43
43
|
# This file is git-ignored. Each developer has their own settings.
|
|
44
44
|
# Run scripts/install to create this file, then /onboard for first-run setup.
|
|
45
45
|
|
|
46
|
-
# ---
|
|
46
|
+
# --- Discipline profile (successor knob, opt-in until the evidence gates pass) ---
|
|
47
|
+
#
|
|
48
|
+
# The ONE runtime knob for the discipline-rule tier (ADR-110; council
|
|
49
|
+
# verdicts 2026-07-07). Measured on claude-haiku-4-5, docs/benchmark.md
|
|
50
|
+
# § Cost-factor sweep:
|
|
51
|
+
#
|
|
52
|
+
# off = kernel only (~1x tokens) — for hosts with a MEASURED null
|
|
53
|
+
# lift (src/config/host-capabilities.yml).
|
|
54
|
+
# essential = kernel + the lift-carrying rules (~3.3x, keeps the weak-host
|
|
55
|
+
# discipline lift; the full load's residual is not significant).
|
|
56
|
+
# full = every rule tier (~11.7x). EXPERIMENTAL opt-in only.
|
|
57
|
+
# auto = resolve per session against host-capabilities.yml
|
|
58
|
+
# (measured-null model -> off, otherwise -> essential).
|
|
59
|
+
#
|
|
60
|
+
# When set, this key WINS over the legacy rule_loading_tier below
|
|
61
|
+
# (mapping when absent: minimal->off, balanced->essential, full->full).
|
|
62
|
+
# The installer fills it per preset (minimal->off, balanced->essential,
|
|
63
|
+
# full->full — behaviour-preserving); `auto` is the evidence-gated flip
|
|
64
|
+
# target (roadmap Phase 4).
|
|
65
|
+
discipline_profile: essential
|
|
66
|
+
|
|
67
|
+
# --- Cost profile (legacy knob — superseded by discipline_profile) ---
|
|
47
68
|
#
|
|
48
69
|
# Master switch that controls which rule tiers load each session.
|
|
49
70
|
# See `docs/customization.md` for the authoritative description and
|
|
@@ -39,7 +39,7 @@ schema_version: 1
|
|
|
39
39
|
# CI guard: a release bump of `package.json` must update this value
|
|
40
40
|
# in lockstep — see scripts/check_template_pin_drift.py (road-to-
|
|
41
41
|
# portable-runtime-and-update-check P3.3).
|
|
42
|
-
agent_config_version: "
|
|
42
|
+
agent_config_version: "8.1.0"
|
|
43
43
|
|
|
44
44
|
# --- Project identity ---
|
|
45
45
|
project:
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
2. Copy the template below
|
|
9
9
|
3. Replace all `{placeholders}` with actual content
|
|
10
10
|
4. Remove all `<!-- comments -->` when done
|
|
11
|
-
5. Run:
|
|
11
|
+
5. Run: `./scripts-run src/scripts/skill_linter src/agent-src/commands/{command-name}.md`
|
|
12
12
|
6. Sync: `task sync` (regenerates `dist/agent-src/` and `.augment/`)
|
|
13
13
|
7. Generate Claude symlink: `task generate-tools` (or manually create symlink)
|
|
14
14
|
|
|
@@ -99,7 +99,7 @@ Before considering a command complete:
|
|
|
99
99
|
- [ ] **Steps**: numbered sub-headings (`### 1.`, `### 2.`, ...)
|
|
100
100
|
- [ ] **Source of truth**: works on `.agent-src.uncondensed/`, not `dist/agent-src/` or `.augment/`
|
|
101
101
|
- [ ] **No auto-apply**: presents findings, asks before destructive changes
|
|
102
|
-
- [ ] **Linter passes**:
|
|
102
|
+
- [ ] **Linter passes**: `./scripts-run src/scripts/skill_linter` reports 0 FAIL
|
|
103
103
|
- [ ] **English only**: all content in English
|
|
104
104
|
- [ ] **Synced**: `dist/agent-src/commands/` has the same file
|
|
105
105
|
- [ ] **Claude symlink**: `.claude/skills/{name}/SKILL.md` → `../../../dist/agent-src/commands/{name}.md`
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Knowledge Pages — lifecycle-typed sibling directories
|
|
2
|
+
|
|
3
|
+
Templates for the four typed directories added beside the existing
|
|
4
|
+
anti-hallucination knowledge cards (`agents/knowledge/<source>.md`,
|
|
5
|
+
[`knowledge-card.md`](knowledge-card.md)). **Existing cards stay untouched
|
|
6
|
+
by this template** — sibling addition, not a migration.
|
|
7
|
+
|
|
8
|
+
## The four directories
|
|
9
|
+
|
|
10
|
+
| Directory | Lifecycle stage | Holds |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| `agents/knowledge/sessions/` | Episodic | What happened — consolidated session learnings, one file per topic or date |
|
|
13
|
+
| `agents/knowledge/concepts/` | Semantic | What is true — project facts: coding standards, module structure, API shapes, domain terms |
|
|
14
|
+
| `agents/knowledge/procedures/` | Procedural | How to — step-by-step knowledge on the way to becoming a skill (`skill-candidates.md` lives here) |
|
|
15
|
+
| `agents/knowledge/decisions/` | Decision record | Small decisions not big enough for a full ADR |
|
|
16
|
+
|
|
17
|
+
`agents/knowledge/INDEX.md` catalogs all five surfaces (cards + the four
|
|
18
|
+
directories), one line per page — generated by
|
|
19
|
+
`src/scripts/generate_knowledge_index.ts`. **Retrieval protocol: index
|
|
20
|
+
first, `grep` keywords second, read the specific file third.** Never
|
|
21
|
+
enumerate every knowledge file directly — no search infrastructure by
|
|
22
|
+
design.
|
|
23
|
+
|
|
24
|
+
## Storage location IS the sharing policy
|
|
25
|
+
|
|
26
|
+
Personal, cross-project knowledge → the ADR-100 user-global store
|
|
27
|
+
(`~/.event4u/agent-config/knowledge/`, via `knowledge_global_cli.ts`) —
|
|
28
|
+
never these project-local directories. Team knowledge → here, in the
|
|
29
|
+
consumer repo, so the whole team benefits via git. Promotion to global
|
|
30
|
+
requires cross-project evidence via the existing manual promotion path —
|
|
31
|
+
never automatic.
|
|
32
|
+
|
|
33
|
+
**Enforced at commit time.** A pre-commit gate
|
|
34
|
+
(`src/scripts/check_knowledge_sharing.ts`) refuses a commit staging a
|
|
35
|
+
`visibility: private` page under `agents/knowledge/` (belongs in the
|
|
36
|
+
global store) or a gitignored `agents/memory/intake/` file staged by
|
|
37
|
+
accident. Warns — never blocks — on 5+ new knowledge files in one
|
|
38
|
+
commit, for a second look.
|
|
39
|
+
|
|
40
|
+
## Entry micro-schema — `date + what + why`
|
|
41
|
+
|
|
42
|
+
Every entry (especially in `sessions/`) states, at minimum:
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
- 2026-07-05: <what happened / was learned> — <why it matters>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Keep entries short; longer explanation goes in the page body below the
|
|
49
|
+
entry list, not stuffed into one line.
|
|
50
|
+
|
|
51
|
+
## Page frontmatter — optional, warn-linted only (v1)
|
|
52
|
+
|
|
53
|
+
None of these fields are mandatory in v1 (schema-as-contract deferred
|
|
54
|
+
until real team usage data exists). When present, warn-linted for shape
|
|
55
|
+
only:
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
---
|
|
59
|
+
type: concept # concept | procedure | session | decision
|
|
60
|
+
scope: project # user | project | global
|
|
61
|
+
visibility: team # private | project | team
|
|
62
|
+
review_after: "YYYY-MM-DD" # optional scheduled re-check date
|
|
63
|
+
contested: [] # append-only array — see "Contested entries" below
|
|
64
|
+
---
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Contested entries — never silently resolved
|
|
68
|
+
|
|
69
|
+
A live contradiction between documented and observed reality gets an
|
|
70
|
+
**append-only** `contested:` entry, never a silent rewrite:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
contested:
|
|
74
|
+
- timestamp: "2026-07-15T14:23:11Z"
|
|
75
|
+
trigger: context_stale
|
|
76
|
+
evidence: "profile.test.ts:45 expected {success, payload}"
|
|
77
|
+
session: "<session id or chat-history pointer>"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Resolution is always human — via the `team-knowledge:consolidate` gate,
|
|
81
|
+
or an isolated, this-turn-approved fix commit. ≥2 unresolved `contested`
|
|
82
|
+
entries on one page → flagged by the knowledge lint for consolidation
|
|
83
|
+
attention.
|
|
84
|
+
|
|
85
|
+
## Page size budget
|
|
86
|
+
|
|
87
|
+
Keep pages ≤ 200 lines. Split by sub-topic before that limit — a
|
|
88
|
+
too-broad page defeats index-first scanning just as much as too many
|
|
89
|
+
tiny pages do.
|
|
90
|
+
|
|
91
|
+
## What this substrate is — honest framing
|
|
92
|
+
|
|
93
|
+
A **governed second-brain substrate**: working-memory continuity across
|
|
94
|
+
compactions + sessions (hot-context cache, dispatcher-wide, 7 platforms),
|
|
95
|
+
deterministic where safe (dedup, recurrence, index regen, fold rollups,
|
|
96
|
+
scale tripwires), human-gated where meaning is at stake (consolidate
|
|
97
|
+
gate, promotion, contested flow). It is **not** self-organizing
|
|
98
|
+
intelligence — governed files; the learning loop is human-reviewed by
|
|
99
|
+
design.
|
|
100
|
+
|
|
101
|
+
**External viewers — read-only, on purpose.** Any Markdown tool (incl.
|
|
102
|
+
Obsidian) can VIEW `agents/knowledge/` — but edits outside
|
|
103
|
+
`/team-knowledge consolidate` silently desync `INDEX.md` + recurrence
|
|
104
|
+
counters at next session start; exactly the failure the gate prevents.
|
|
105
|
+
No `.obsidian/` config shipped, deliberately (council claude-sonnet-4-5
|
|
106
|
+
+ gpt-4o, 2026-07-07 — converged 2/2 reject: out-of-gate edits are an
|
|
107
|
+
unguardable dual-write; an editable vault re-creates the
|
|
108
|
+
knowledge-as-truth model the 2026-07-05 verdict rejected).
|
|
109
|
+
|
|
110
|
+
## See also
|
|
111
|
+
|
|
112
|
+
- [`knowledge-card.md`](knowledge-card.md) — the existing anti-hallucination
|
|
113
|
+
card template (unchanged, unaffected by this addition).
|
|
114
|
+
- [`context-document`](../../../skills/context-document/SKILL.md) —
|
|
115
|
+
structured, on-demand codebase-area documentation (different, manual
|
|
116
|
+
surface; complements rather than duplicates these pages).
|
|
@@ -79,7 +79,31 @@ Templates for roadmap files stored in `agents/roadmaps/` or `{module_root}/{Modu
|
|
|
79
79
|
dashboard surfaces roadmap, readers honor body convention.
|
|
80
80
|
Authoring contract: [`roadmap-writing § 7`](../skills/roadmap-writing/SKILL.md);
|
|
81
81
|
spawn procedure: [`roadmap-management § Spawn follow-up`](../skills/roadmap-management/SKILL.md).
|
|
82
|
-
18. **
|
|
82
|
+
18. **Declare execution mode.** Every roadmap MAY declare how it
|
|
83
|
+
should be executed by `/roadmap:process-*` via frontmatter:
|
|
84
|
+
```yaml
|
|
85
|
+
execution:
|
|
86
|
+
mode: autonomous # autonomous | phase-checkpoints | interactive
|
|
87
|
+
```
|
|
88
|
+
- `interactive` (default when field absent) — today's behavior:
|
|
89
|
+
every gate fires as authored by its owning rule.
|
|
90
|
+
- `phase-checkpoints` — run halts at each phase boundary with a
|
|
91
|
+
compact status + continue prompt; inside a phase behaves like
|
|
92
|
+
`autonomous`.
|
|
93
|
+
- `autonomous` — at run start loop derives an **execution
|
|
94
|
+
contract** (see
|
|
95
|
+
[`roadmap-execution-contract`](../contexts/execution/roadmap-execution-contract.md))
|
|
96
|
+
and ONE confirmation activates all run grants; run then proceeds
|
|
97
|
+
without interruptions except safety floors.
|
|
98
|
+
|
|
99
|
+
Field is a **declaration of intent, not a permission grant** —
|
|
100
|
+
permissions granted only by user's this-turn acceptance of the
|
|
101
|
+
run-start execution contract. Frontmatter never lifts a Hard
|
|
102
|
+
Floor, never authorizes a merge, never substitutes for contract
|
|
103
|
+
confirmation. Unknown values rejected by roadmap lint. Follow-up
|
|
104
|
+
roadmaps (rule 17) inherit parent's mode as *suggested* option
|
|
105
|
+
during creation but question always asked again.
|
|
106
|
+
19. **Source-derived roadmaps carry a gap-table + provenance; internally
|
|
83
107
|
originated roadmaps carry neither.** Fires **only** when a roadmap
|
|
84
108
|
originates from an external input (suggestion, competitive/capability
|
|
85
109
|
harvest, external LLM ideation thread) or adopts external capabilities
|
|
@@ -99,6 +123,38 @@ Templates for roadmap files stored in `agents/roadmaps/` or `{module_root}/{Modu
|
|
|
99
123
|
session filepath ([`no-roadmap-references`](../rules/no-roadmap-references.md)).
|
|
100
124
|
Authoring contract:
|
|
101
125
|
[`roadmap-writing § 8`](../skills/roadmap-writing/SKILL.md).
|
|
126
|
+
20. **Blockers are structured, not free prose.** A gate only user (or a
|
|
127
|
+
maintainer) can clear — decision, external dependency, evidence
|
|
128
|
+
threshold, kernel-budget soak window — records as a `## Blockers`
|
|
129
|
+
entry, not a stray sentence. Shape (one entry per blocker):
|
|
130
|
+
```markdown
|
|
131
|
+
## Blockers
|
|
132
|
+
|
|
133
|
+
### blocker: <kebab-id>
|
|
134
|
+
- **Status:** open <!-- open | resolved -->
|
|
135
|
+
- **Owner:** user <!-- user | maintainer | external -->
|
|
136
|
+
- **Blocks:** Phase N — {phase name}
|
|
137
|
+
- **What to do:**
|
|
138
|
+
1. {Concrete, copy-pasteable step owner must execute.}
|
|
139
|
+
2. {Include commands, file paths, expected outcomes.}
|
|
140
|
+
- **Resolved when:** {decidable signal, e.g. "task X exits 0"}
|
|
141
|
+
```
|
|
142
|
+
`### blocker: <id>` is the parse anchor dashboard generator reads;
|
|
143
|
+
ids unique within roadmap. All five fields required. A cleared
|
|
144
|
+
blocker flips `Status: resolved` (kept for history) instead of
|
|
145
|
+
deleted — resolve-flip runs in same reply as checkbox flip that
|
|
146
|
+
cleared it, per
|
|
147
|
+
[`roadmap-progress-sync`](../rules/roadmap-progress-sync.md). Step
|
|
148
|
+
gated by a specific blocker may cross-reference inline:
|
|
149
|
+
`- [ ] … <!-- blocked-by: <blocker-id> -->`.
|
|
150
|
+
|
|
151
|
+
**Legacy fallback.** Body-level `> Blocked until <condition>` note
|
|
152
|
+
(follow-up-roadmap convention from rule 17) is parsed by dashboard
|
|
153
|
+
generator as one implicit roadmap-level blocker (`Owner: user`,
|
|
154
|
+
instructions = note text) — existing roadmaps surface in
|
|
155
|
+
dashboard's `Blocker` column without retrofit. New roadmaps prefer
|
|
156
|
+
structured form above; renders richer instructions in per-roadmap
|
|
157
|
+
breakdown.
|
|
102
158
|
|
|
103
159
|
---
|
|
104
160
|
|
|
@@ -185,12 +241,24 @@ complexity: lightweight
|
|
|
185
241
|
- [ ] {Observable, testable criterion}
|
|
186
242
|
- [ ] All quality gates pass (PHPStan, Rector, tests)
|
|
187
243
|
|
|
244
|
+
<!-- ## Blockers — INCLUDE ONLY when a gate exists that only user /
|
|
245
|
+
a maintainer can clear (decision, external dependency, evidence
|
|
246
|
+
threshold, soak window). OMIT entirely when none — see rule 20
|
|
247
|
+
for full shape.
|
|
248
|
+
### blocker: <kebab-id>
|
|
249
|
+
- **Status:** open
|
|
250
|
+
- **Owner:** user
|
|
251
|
+
- **Blocks:** Phase N — {phase name}
|
|
252
|
+
- **What to do:**
|
|
253
|
+
1. {step}
|
|
254
|
+
- **Resolved when:** {decidable signal} -->
|
|
255
|
+
|
|
188
256
|
## Notes
|
|
189
257
|
|
|
190
258
|
{Optional: edge cases, decisions, links to related docs.}
|
|
191
259
|
|
|
192
260
|
<!-- ## Provenance — INCLUDE ONLY for source-derived / harvest / capability-adoption
|
|
193
|
-
roadmaps (rule
|
|
261
|
+
roadmaps (rule 19). OMIT entirely for internally-originated roadmaps —
|
|
194
262
|
do NOT ship an empty Provenance section.
|
|
195
263
|
- Source: <neutral descriptor> (anonymized per source-confidentiality);
|
|
196
264
|
link via `src/scripts/_lib/link_crypto.ts decrypt`: ENC1:<token>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
1. Pick a kebab-case `{rule-name}` matching the file stem.
|
|
10
10
|
2. Copy the template below into `.agent-src.uncondensed/rules/{rule-name}.md`.
|
|
11
11
|
3. Replace placeholders, drop sections that don't apply.
|
|
12
|
-
4. Run `task lint-skills` and
|
|
12
|
+
4. Run `task lint-skills` and `./scripts-run src/scripts/lint_load_context`.
|
|
13
13
|
5. Condense: `bash scripts/condense.sh --changed` then follow the agent flow.
|
|
14
14
|
|
|
15
15
|
## Path conventions — load-bearing
|
|
@@ -127,13 +127,13 @@ gh label delete risk:low risk:medium risk:high
|
|
|
127
127
|
## Verifying locally
|
|
128
128
|
|
|
129
129
|
```bash
|
|
130
|
-
|
|
130
|
+
./scripts-run src/agent-src/templates/scripts/pr_risk_review \
|
|
131
131
|
--base origin/main --head HEAD \
|
|
132
132
|
--config .github/pr-risk-config.yml \
|
|
133
133
|
--output /tmp/risk-report.md \
|
|
134
134
|
--level-file /tmp/risk-level.txt
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
./scripts-run src/agent-src/templates/scripts/pr_review_routing \
|
|
137
137
|
--base origin/main --head HEAD \
|
|
138
138
|
--ownership-map .github/ownership-map.yml \
|
|
139
139
|
--patterns .github/historical-bug-patterns.yml \
|
|
@@ -185,7 +185,7 @@ whatever is under `agents/memory/`. Trigger manually with
|
|
|
185
185
|
## Verifying locally
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
|
-
|
|
188
|
+
./scripts-run src/scripts/check_memory --path agents/memory
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
Exit `0` = clean, `1` = violations (missing required fields, duplicate
|
|
@@ -203,6 +203,10 @@ export const MERGEABLE_KEYS: readonly string[] = [
|
|
|
203
203
|
'name',
|
|
204
204
|
'ide',
|
|
205
205
|
'rule_loading_tier',
|
|
206
|
+
// Successor knob for the discipline-rule tier (council 2026-07-07,
|
|
207
|
+
// weak-host-lift-tiering + token-program-integration verdicts; ADR
|
|
208
|
+
// records the whitelist addition). Wins over rule_loading_tier.
|
|
209
|
+
'discipline_profile',
|
|
206
210
|
'memory.cadence',
|
|
207
211
|
'personal.bot_icon',
|
|
208
212
|
'personal.autonomy',
|
|
@@ -1116,3 +1120,108 @@ function _relative_to(child: string, root: string): string {
|
|
|
1116
1120
|
function _posix_join(a: string, b: string): string {
|
|
1117
1121
|
return `${a.split(path.sep).join('/')}/${b}`;
|
|
1118
1122
|
}
|
|
1123
|
+
|
|
1124
|
+
// ── discipline_profile resolution (weak-host-lift tiering) ─────────────────
|
|
1125
|
+
//
|
|
1126
|
+
// The ONE runtime knob for the discipline-rule tier (council 2026-07-07:
|
|
1127
|
+
// weak-host-lift-tiering + token-program-integration verdicts). Values:
|
|
1128
|
+
// `auto | off | essential | full`; `auto` resolves per session against the
|
|
1129
|
+
// evidence-gated NULL-lift disable-list in `src/config/host-capabilities.yml`.
|
|
1130
|
+
// Legacy `rule_loading_tier` maps when the new key is absent.
|
|
1131
|
+
|
|
1132
|
+
export type DisciplineProfile = 'off' | 'essential' | 'full' | 'custom';
|
|
1133
|
+
|
|
1134
|
+
export interface HostCapabilities {
|
|
1135
|
+
/** Models with a MEASURED null discipline lift (prefix-matched ids). */
|
|
1136
|
+
lift_disabled_models: string[];
|
|
1137
|
+
/** Resolution for unmatched/unknown models. Fail-safe: lift_enabled. */
|
|
1138
|
+
unknown_default: 'lift_enabled' | 'lift_disabled';
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
const _CAPABILITIES_FALLBACK: HostCapabilities = {
|
|
1142
|
+
lift_disabled_models: [],
|
|
1143
|
+
unknown_default: 'lift_enabled',
|
|
1144
|
+
};
|
|
1145
|
+
|
|
1146
|
+
/**
|
|
1147
|
+
* Load `host-capabilities.yml` — tolerant like every settings read: a
|
|
1148
|
+
* missing / unreadable / malformed file resolves to the fail-safe fallback
|
|
1149
|
+
* (empty disable-list, `lift_enabled`), never an error. Entries may be
|
|
1150
|
+
* plain strings or `{ id, measured?, extrapolated? }` mappings; only the
|
|
1151
|
+
* id is needed for resolution (the provenance fields are the CLAIMS-grade
|
|
1152
|
+
* audit trail the file contract requires).
|
|
1153
|
+
*/
|
|
1154
|
+
export function load_host_capabilities(p: string): HostCapabilities {
|
|
1155
|
+
const raw = _read_yaml(p);
|
|
1156
|
+
if (raw === null || !_is_plain_dict(raw)) {
|
|
1157
|
+
return { ..._CAPABILITIES_FALLBACK, lift_disabled_models: [] };
|
|
1158
|
+
}
|
|
1159
|
+
const ids: string[] = [];
|
|
1160
|
+
const entries = raw['lift_disabled_models'];
|
|
1161
|
+
if (Array.isArray(entries)) {
|
|
1162
|
+
for (const entry of entries) {
|
|
1163
|
+
if (typeof entry === 'string' && entry.trim()) {
|
|
1164
|
+
ids.push(entry.trim());
|
|
1165
|
+
} else if (_is_plain_dict(entry) && typeof entry['id'] === 'string' && entry['id'].trim()) {
|
|
1166
|
+
ids.push((entry['id'] as string).trim());
|
|
1167
|
+
}
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
const unknown = raw['unknown_default'] === 'lift_disabled' ? 'lift_disabled' : 'lift_enabled';
|
|
1171
|
+
return { lift_disabled_models: ids, unknown_default: unknown };
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
/** Prefix match a session model id against the measured disable-list. */
|
|
1175
|
+
export function is_lift_disabled_model(model_id: string | null, caps: HostCapabilities): boolean {
|
|
1176
|
+
if (!model_id) {
|
|
1177
|
+
return false;
|
|
1178
|
+
}
|
|
1179
|
+
const normalized = model_id.trim().toLowerCase();
|
|
1180
|
+
return caps.lift_disabled_models.some((entry) => normalized.startsWith(entry.trim().toLowerCase()));
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Resolve the effective discipline profile for a session.
|
|
1185
|
+
*
|
|
1186
|
+
* Precedence: explicit `discipline_profile` wins; absent → legacy
|
|
1187
|
+
* `rule_loading_tier` mapping (minimal→off, balanced→essential, full→full,
|
|
1188
|
+
* custom→custom); both absent → `essential` (the successor of the
|
|
1189
|
+
* documented `balanced` default). `auto` resolves against the capabilities:
|
|
1190
|
+
* measured NULL-lift model → `off`; anything else — including an unknown or
|
|
1191
|
+
* missing model id — → `essential` under `lift_enabled` (fail-safe: never
|
|
1192
|
+
* silently drop the measured lift on a possibly-weak host) or `off` under
|
|
1193
|
+
* `lift_disabled`.
|
|
1194
|
+
*
|
|
1195
|
+
* Pure function — callers pass the merged settings dict, the session model
|
|
1196
|
+
* id (null when the host does not expose one), and the loaded capabilities.
|
|
1197
|
+
*/
|
|
1198
|
+
export function resolve_discipline_profile(
|
|
1199
|
+
settings: SettingsDict,
|
|
1200
|
+
model_id: string | null,
|
|
1201
|
+
caps: HostCapabilities,
|
|
1202
|
+
): DisciplineProfile {
|
|
1203
|
+
const explicit = settings['discipline_profile'];
|
|
1204
|
+
if (explicit === 'off' || explicit === 'essential' || explicit === 'full') {
|
|
1205
|
+
return explicit;
|
|
1206
|
+
}
|
|
1207
|
+
if (explicit === 'auto') {
|
|
1208
|
+
if (is_lift_disabled_model(model_id, caps)) {
|
|
1209
|
+
return 'off';
|
|
1210
|
+
}
|
|
1211
|
+
return caps.unknown_default === 'lift_disabled' ? 'off' : 'essential';
|
|
1212
|
+
}
|
|
1213
|
+
const legacy = settings['rule_loading_tier'];
|
|
1214
|
+
if (legacy === 'minimal') {
|
|
1215
|
+
return 'off';
|
|
1216
|
+
}
|
|
1217
|
+
if (legacy === 'balanced') {
|
|
1218
|
+
return 'essential';
|
|
1219
|
+
}
|
|
1220
|
+
if (legacy === 'full') {
|
|
1221
|
+
return 'full';
|
|
1222
|
+
}
|
|
1223
|
+
if (legacy === 'custom') {
|
|
1224
|
+
return 'custom';
|
|
1225
|
+
}
|
|
1226
|
+
return 'essential';
|
|
1227
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Ticket Template
|
|
2
2
|
|
|
3
3
|
Authoring template for ticket files stored in `agents/tickets/{roadmap-slug}/T-NNN-{slug}.md`.
|
|
4
|
-
One ticket = one Markdown build contract, consumed by `emit-tickets`, `lint_ticket_buildable
|
|
4
|
+
One ticket = one Markdown build contract, consumed by `emit-tickets`, `lint_ticket_buildable`,
|
|
5
5
|
and `/implement-ticket`. Schema locked by ADR-101; full doctrine in
|
|
6
6
|
[`docs/contracts/ticket-bundle-format.md`](../docs/contracts/ticket-bundle-format.md).
|
|
7
7
|
|
|
@@ -15,7 +15,7 @@ and `/implement-ticket`. Schema locked by ADR-101; full doctrine in
|
|
|
15
15
|
3. **`model_tier`** declares who may build (`lite | medium | high` per ADR-035). Choose
|
|
16
16
|
conservatively — a failing `lite` auto-escalates to `medium`.
|
|
17
17
|
4. **`acceptance` must be runnable AND isolation-testable** — no prose-only criteria.
|
|
18
|
-
Hard gate for `lite` tickets (enforced by `lint_ticket_buildable
|
|
18
|
+
Hard gate for `lite` tickets (enforced by `lint_ticket_buildable`).
|
|
19
19
|
5. **`boundaries` must be non-empty for `lite`.** At least one `must_touch` or `must_not_touch`.
|
|
20
20
|
6. **SHA-pin both ref lists.** `adr_refs` drift = HARD block; `source_refs` drift = WARN only.
|
|
21
21
|
Pin with `git rev-parse HEAD:path/to/file`.
|
|
@@ -49,12 +49,12 @@ blocked_by: [] # dependency edges, must be acyclic
|
|
|
49
49
|
adr_refs:
|
|
50
50
|
- { path: docs/decisions/ADR-101-ticket-bundle-emission.md, sha: <git-blob-sha> }
|
|
51
51
|
source_refs:
|
|
52
|
-
- { path: lint_ticket_buildable
|
|
52
|
+
- { path: lint_ticket_buildable, sha: <git-blob-sha> }
|
|
53
53
|
assets: none # or: [T-001.assets/wireframe.png]
|
|
54
54
|
acceptance:
|
|
55
|
-
- "
|
|
55
|
+
- "./scripts-run src/scripts/lint_ticket_buildable agents/tickets/x/ exits 0"
|
|
56
56
|
boundaries:
|
|
57
|
-
must_touch: [lint_ticket_buildable
|
|
57
|
+
must_touch: [lint_ticket_buildable]
|
|
58
58
|
may_touch: [Taskfile.yml]
|
|
59
59
|
must_not_touch: ["src/scripts/work_engine/**", ".github/**"]
|
|
60
60
|
---
|
|
@@ -67,7 +67,7 @@ boundaries:
|
|
|
67
67
|
|
|
68
68
|
{Exact paths the builder needs — no searching required. Include:}
|
|
69
69
|
|
|
70
|
-
- `lint_ticket_buildable
|
|
70
|
+
- `lint_ticket_buildable:42` — the export entry point; extend `run()` here
|
|
71
71
|
- `agents/tickets/{slug}/manifest.yml` — the manifest this ticket reads
|
|
72
72
|
- `src/scripts/schemas/ticket-manifest.schema.json` — the schema to validate against
|
|
73
73
|
|
|
@@ -90,13 +90,13 @@ boundaries:
|
|
|
90
90
|
All criteria are in the frontmatter `acceptance` list. Reproduce them here for
|
|
91
91
|
inline reference:
|
|
92
92
|
|
|
93
|
-
-
|
|
93
|
+
- `./scripts-run src/scripts/lint_ticket_buildable agents/tickets/x/ exits 0`
|
|
94
94
|
- {additional runnable check}
|
|
95
95
|
|
|
96
96
|
## Quality gates
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
|
|
99
|
+
./scripts-run src/scripts/lint_ticket_buildable agents/tickets/road-to-xyz/
|
|
100
100
|
# Check project Taskfile.yml / Makefile for additional narrow checks
|
|
101
101
|
```
|
|
102
102
|
|
|
@@ -15,7 +15,7 @@ let manifestPath;
|
|
|
15
15
|
let evalPath;
|
|
16
16
|
const MANIFEST = {
|
|
17
17
|
upstream: {
|
|
18
|
-
repo: 'https://github.com/
|
|
18
|
+
repo: 'https://github.com/example-org/example-upstream-skill',
|
|
19
19
|
sha: 'b7e3af80f6e331f6fb456667b82b12cade7c9d35',
|
|
20
20
|
last_checked: '2026-06-07',
|
|
21
21
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordTriggerEval.test.js","sourceRoot":"","sources":["../../../src/cli/commands/recordTriggerEval.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,IAAI,GAAW,CAAC;AAChB,IAAI,YAAoB,CAAC;AACzB,IAAI,QAAgB,CAAC;AAErB,MAAM,QAAQ,GAAG;IACb,QAAQ,EAAE;QACN,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"recordTriggerEval.test.js","sourceRoot":"","sources":["../../../src/cli/commands/recordTriggerEval.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/initRouting.js
CHANGED
|
@@ -18,8 +18,9 @@ import { isHeadless } from './commands/uiServe.js';
|
|
|
18
18
|
* - stdin/stdout is not a TTY (piped / curl|bash)
|
|
19
19
|
* - headless host (SSH / Linux without DISPLAY)
|
|
20
20
|
* - a CLI-mode flag is present (--no-ui / --tools / --ai / --yes / --quiet /
|
|
21
|
-
* --dry-run / --minimal / --settings-only / --list-tools
|
|
22
|
-
* already knows what to install and
|
|
21
|
+
* --dry-run / --minimal / --settings-only / --list-tools /
|
|
22
|
+
* --validate-only) — the caller already knows what to install and
|
|
23
|
+
* doesn't want the picker.
|
|
23
24
|
*
|
|
24
25
|
* `rest` is argv without the leading `init` token.
|
|
25
26
|
*/
|
|
@@ -37,6 +38,7 @@ export function shouldInitLaunchGui(rest) {
|
|
|
37
38
|
const cliSignals = new Set([
|
|
38
39
|
'--no-ui', '--tools', '--ai', '--yes', '-y', '--quiet', '-q',
|
|
39
40
|
'--dry-run', '--minimal', '--settings-only', '--list-tools',
|
|
41
|
+
'--validate-only', '--fleet',
|
|
40
42
|
]);
|
|
41
43
|
for (const arg of rest) {
|
|
42
44
|
const flag = arg.split('=', 1)[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initRouting.js","sourceRoot":"","sources":["../../src/cli/initRouting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"initRouting.js","sourceRoot":"","sources":["../../src/cli/initRouting.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/registry.js
CHANGED
|
@@ -26,6 +26,7 @@ export const REGISTRY = [
|
|
|
26
26
|
{ name: 'uninstall', disposition: 'delegate' },
|
|
27
27
|
{ name: 'prune', disposition: 'delegate' },
|
|
28
28
|
{ name: 'doctor', disposition: 'delegate' },
|
|
29
|
+
{ name: 'conformance', disposition: 'delegate', synopsis: 'Consumer conformance contract: doctor --ci + installed-and-firing checks.' },
|
|
29
30
|
{ name: 'doctor-shell', disposition: 'native', synopsis: 'Native TS-shell environment probe.' },
|
|
30
31
|
{ name: 'ui:serve', disposition: 'native', synopsis: 'Start the local UI server.' },
|
|
31
32
|
{ name: 'settings', disposition: 'native', synopsis: 'Open the local Settings GUI.' },
|
package/dist/cli/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,MAAM,CAAC,MAAM,QAAQ,GAA4B;IAC7C,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,2BAA2B,EAAE;IAChF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAE;IACnF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,kCAAkC,EAAE;IAC3F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,oCAAoC,EAAE;IACzF,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,oCAAoC,EAAE;IACrG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,mEAAmE,EAAE;IAC3H,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,mEAAmE,EAAE;IAC3H,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,sCAAsC,EAAE;IAC7F,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE;IACnD,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,mEAAmE,EAAE;IACpI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE;IAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE;IAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,2EAA2E,EAAE;IACvI,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,oCAAoC,EAAE;IAC/F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,EAAE;IACnF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B,EAAE;IACrF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,kEAAkE,EAAE;IACxH,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,4DAA4D,EAAE;IAChH,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,8DAA8D,EAAE;IACvH,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,yDAAyD,EAAE;IAC7G,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,0FAA0F,EAAE;IACjJ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,iDAAiD,EAAE;IACpG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE;IAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IAC3H,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE;IAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE;IAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE;IAC9C,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE;IAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE;IAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,uFAAuF,EAAE;IAChJ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IAC/G,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3D,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,4EAA4E,EAAE;IAC/I,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE;IAClD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3D,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE;IACxD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE;IAC9C,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE;IAClD,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE;IACzD,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE;IAClD,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC1D,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE;IACnD,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE;IACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE;IACtD,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC5D,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC1D,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE;IACzD,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,UAAU,EAAE;IACzD,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE;IAClD,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE;IACrD,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE;IACnD,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,4FAA4F,EAAE;CAChJ,CAAC;AAEX,MAAM,UAAU,WAAW,CAAC,IAAY;IACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAC;AACvD,CAAC"}
|