@event4u/agent-config 7.4.0 → 8.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/.claude-plugin/marketplace.json +11 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +373 -0
- 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/review-changes.md +14 -7
- 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 +11 -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 +8 -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 +7 -8
- 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 +4 -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 +5 -7
- 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 +11 -10
- 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 +52 -42
- package/dist/agent-src/skills/adversarial-review/SKILL.md +1 -1
- 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/blade-ui/SKILL.md +4 -0
- 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 +5 -4
- 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 +5 -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-authoring/SKILL.md +1 -1
- 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 +45 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +23 -11
- package/dist/agent-src/skills/design-system-capture/SKILL.md +41 -0
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +62 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +11 -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/existing-ui-audit/SKILL.md +6 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/flux/SKILL.md +4 -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/iconography/SKILL.md +1 -0
- package/dist/agent-src/skills/image-editing/evals/triggers.json +13 -13
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +136 -0
- package/dist/agent-src/skills/judge-artifact-completeness/calibration/fixtures.json +149 -0
- package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +17 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/architecture-score.json +73 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/pr-review-score.json +65 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/roadmap-score.json +73 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/ticket-quality-score.json +73 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +99 -0
- package/dist/agent-src/skills/judge-injection-defense/calibration/fixtures.json +24 -0
- package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +17 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/behavioral-fixtures.json +63 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/coverage-report.md +53 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/perturbation-taxonomy.json +110 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +134 -0
- package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +17 -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/logo-generation/SKILL.md +1 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- 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/react-shadcn-ui/SKILL.md +18 -0
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +59 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +5 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +47 -46
- package/dist/agent-src/skills/roadmap-management/SKILL.md +25 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +33 -3
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/script-writing/SKILL.md +1 -1
- 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/sql-writing/SKILL.md +1 -1
- 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 +30 -1
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -0
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +4 -3
- 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 +802 -258
- 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 +46 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +32 -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 +6 -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 +6 -6
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +92 -74
- package/docs/command-flows.md +16 -4
- 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 +35 -0
- package/docs/guidelines/design-canon.md +62 -0
- 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 +71 -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 +208 -0
- package/src/scripts/design_slop_rules.ts +530 -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 +14 -3
- 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 +40 -17
- package/src/scripts/hooks/design_slop_hook.ts +181 -0
- 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_agent_security.ts +1 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_confusables.ts +197 -0
- package/src/scripts/lint_design_slop.ts +245 -0
- 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,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"}
|