@mmerterden/multi-agent-pipeline 20.2.1 → 20.3.1
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/CHANGELOG.md +919 -1
- package/README.md +104 -81
- package/README.tr.md +103 -62
- package/docs/FIGMA_PIPELINE.md +35 -35
- package/docs/adr/0006-skills-core-external-split.md +1 -1
- package/docs/adr/0007-multi-tool-adapter-framework.md +6 -0
- package/docs/adr/0008-installer-modularization-and-secret-leak-defense.md +7 -0
- package/docs/architecture.md +50 -14
- package/docs/best-practices.md +1 -1
- package/docs/ecosystem.md +56 -32
- package/docs/facts.json +10 -10
- package/docs/features.md +97 -5
- package/docs/recovery-guide.md +7 -14
- package/docs/server-readiness.md +31 -24
- package/index.js +1 -1
- package/install/_common.mjs +3 -5
- package/install/_platform-filter.mjs +23 -1
- package/install/_unattended-profile.mjs +321 -75
- package/install/claude.mjs +51 -10
- package/install/codex.mjs +2 -0
- package/install/copilot.mjs +2 -0
- package/install/index.mjs +30 -17
- package/install/templates/claude-hooks.json +16 -5
- package/install/templates/copilot-instructions.md +1 -1
- package/install/templates/multi-agent-autopilot-awake.plist.template +48 -0
- package/install/templates/multi-agent-autopilot.plist.template +12 -5
- package/install/unattended-profile-legacy.json +80 -0
- package/manifest.json +617 -483
- package/package.json +8 -3
- package/pipeline/agents/code-reviewer.md +10 -0
- package/pipeline/agents/plan-critic.md +98 -0
- package/pipeline/agents/security-auditor.md +10 -0
- package/pipeline/agents/task-clarifier.md +10 -0
- package/pipeline/commands/multi-agent/SKILL.md +2 -2
- package/pipeline/commands/multi-agent/analysis/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/analysis-jira/SKILL.md +12 -1
- package/pipeline/commands/multi-agent/analysis-resolve/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/autopilot/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/autopilot-off/SKILL.md +36 -6
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +77 -12
- package/pipeline/commands/multi-agent/autopilot-status/SKILL.md +29 -8
- package/pipeline/commands/multi-agent/build-optimize/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +9 -9
- package/pipeline/commands/multi-agent/complaint-analysis/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/create-jira/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/design-check/SKILL.md +16 -11
- package/pipeline/commands/multi-agent/diff-explain/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/doctor/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/feedback/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/forget/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/garbage-collect/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/graph/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/help/SKILL.md +37 -39
- package/pipeline/commands/multi-agent/ios-coding-standard/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/issue/SKILL.md +7 -1
- package/pipeline/commands/multi-agent/jira/SKILL.md +7 -1
- package/pipeline/commands/multi-agent/kill/SKILL.md +9 -3
- package/pipeline/commands/multi-agent/language/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/log/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/manual-test/SKILL.md +5 -0
- package/pipeline/commands/multi-agent/model/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/prune-prompts/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/purge/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/refactor/SKILL.md +5 -0
- package/pipeline/commands/multi-agent/research/SKILL.md +49 -0
- package/pipeline/commands/multi-agent/resume/SKILL.md +29 -6
- package/pipeline/commands/multi-agent/review/SKILL.md +28 -9
- package/pipeline/commands/multi-agent/review-analysis/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/review-issue/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/review-jira/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-off/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-on/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/route-status/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/routines/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/save/SKILL.md +6 -2
- package/pipeline/commands/multi-agent/scaffold/SKILL.md +47 -0
- package/pipeline/commands/multi-agent/scan/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/search/SKILL.md +12 -8
- package/pipeline/commands/multi-agent/security-review/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/serve/SKILL.md +62 -0
- package/pipeline/commands/multi-agent/setup/SKILL.md +27 -36
- package/pipeline/commands/multi-agent/stack/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/status/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/steer/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/store-ready/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/sync/SKILL.md +13 -13
- package/pipeline/commands/multi-agent/test/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-accessibility/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-dark-mode/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-dynamic-type/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/test-screenshots/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/testflight-validation/SKILL.md +4 -0
- package/pipeline/commands/multi-agent/uninstall/SKILL.md +5 -1
- package/pipeline/commands/multi-agent/update/SKILL.md +4 -0
- package/pipeline/contract/CHANGELOG.md +74 -0
- package/pipeline/contract/README.md +126 -0
- package/pipeline/contract/build.mjs +427 -0
- package/pipeline/contract/fixtures/answer-result.json +11 -0
- package/pipeline/contract/fixtures/error-invalid-request.json +8 -0
- package/pipeline/contract/fixtures/error-unauthorized.json +5 -0
- package/pipeline/contract/fixtures/error-unsigned.json +5 -0
- package/pipeline/contract/fixtures/issues-empty.json +18 -0
- package/pipeline/contract/fixtures/launch-plan.json +31 -0
- package/pipeline/contract/fixtures/runs-awaiting-question.json +70 -0
- package/pipeline/contract/fixtures/runs-empty.json +6 -0
- package/pipeline/contract/fixtures/runs-failed.json +84 -0
- package/pipeline/contract/fixtures/runs-old-schema.json +70 -0
- package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +101 -0
- package/pipeline/contract/fixtures/runs-pr-opened.json +106 -0
- package/pipeline/contract/fixtures/runs-running.json +84 -0
- package/pipeline/contract/fixtures/worktrees-empty.json +4 -0
- package/pipeline/contract/frozen/toolbox.json +107 -0
- package/pipeline/contract/manifest.json +263 -0
- package/pipeline/contract/types/index.d.ts +343 -0
- package/pipeline/lib/_jira-auth.sh +6 -2
- package/pipeline/lib/account-resolver.sh +1 -1
- package/pipeline/lib/autopilot-state.sh +19 -0
- package/pipeline/lib/context-link-extractor.sh +12 -5
- package/pipeline/lib/credential-inventory.sh +12 -5
- package/pipeline/lib/credential-store.sh +116 -185
- package/pipeline/lib/fetch-confluence.sh +44 -3
- package/pipeline/lib/fetch-document.sh +3 -4
- package/pipeline/lib/fetch-fortify.sh +1 -1
- package/pipeline/lib/figma-mcp-refresh.sh +2 -2
- package/pipeline/lib/figma-token.sh +5 -1
- package/pipeline/lib/issue-fetcher.sh +233 -16
- package/pipeline/lib/json-file-lock.mjs +172 -0
- package/pipeline/lib/model-dispatch.sh +21 -12
- package/pipeline/lib/model-rung.sh +6 -1
- package/pipeline/lib/multi-repo-pipeline.sh +1 -1
- package/pipeline/lib/outbound-gate.mjs +46 -16
- package/pipeline/lib/parse-complaints.sh +14 -7
- package/pipeline/lib/plan-todos.sh +3 -3
- package/pipeline/lib/post-pr-review.sh +9 -9
- package/pipeline/lib/pr-request-location.mjs +85 -0
- package/pipeline/lib/regular-file.mjs +153 -0
- package/pipeline/lib/repo-hygiene.sh +17 -0
- package/pipeline/lib/route-state.sh +5 -1
- package/pipeline/lib/run-paths.sh +3 -2
- package/pipeline/lib/stack-detect.sh +19 -1
- package/pipeline/lib/unattended-profile-check.mjs +178 -0
- package/pipeline/lib/unattended-settings-location.mjs +28 -0
- package/pipeline/lib/unattended.mjs +76 -0
- package/pipeline/lib/unattended.sh +32 -0
- package/pipeline/lib/untrusted.mjs +76 -0
- package/pipeline/lib/usage-endpoint.mjs +33 -0
- package/pipeline/lib/user-facing.mjs +82 -0
- package/pipeline/lib/user-facing.sh +58 -0
- package/pipeline/multi-agent-refs/_dev-context.md +1 -1
- package/pipeline/multi-agent-refs/analysis/evidence.md +4 -0
- package/pipeline/multi-agent-refs/analysis/locked.md +2 -2
- package/pipeline/multi-agent-refs/analysis/render.md +4 -3
- package/pipeline/multi-agent-refs/analysis/resolve.md +3 -1
- package/pipeline/multi-agent-refs/analysis/synthesis.md +4 -5
- package/pipeline/multi-agent-refs/analysis-template.md +10 -17
- package/pipeline/multi-agent-refs/channels/jira.md +1 -1
- package/pipeline/multi-agent-refs/component-dispatch.md +3 -3
- package/pipeline/multi-agent-refs/conventions-defaults.md +32 -32
- package/pipeline/multi-agent-refs/cross-cli-contract.md +10 -17
- package/pipeline/multi-agent-refs/features/autopilot-circuit-breaker.md +37 -9
- package/pipeline/multi-agent-refs/features/autopilot-operations.md +277 -0
- package/pipeline/multi-agent-refs/features/constitution.md +196 -0
- package/pipeline/multi-agent-refs/features/doctor.md +6 -3
- package/pipeline/multi-agent-refs/features/external-context-injection.md +6 -1
- package/pipeline/multi-agent-refs/features/jira-context.md +1 -1
- package/pipeline/multi-agent-refs/features/maturity-followup.md +43 -23
- package/pipeline/multi-agent-refs/features/model-fallback.md +9 -0
- package/pipeline/multi-agent-refs/features/phone-api.md +306 -0
- package/pipeline/multi-agent-refs/features/plan-critic.md +159 -0
- package/pipeline/multi-agent-refs/features/research.md +150 -0
- package/pipeline/multi-agent-refs/features/review-decision.md +185 -0
- package/pipeline/multi-agent-refs/features/scaffold.md +160 -0
- package/pipeline/multi-agent-refs/features/security-audit.md +6 -2
- package/pipeline/multi-agent-refs/features/skill-conformance.md +4 -1
- package/pipeline/multi-agent-refs/features/stack-adapters.md +116 -0
- package/pipeline/multi-agent-refs/features/unattended-gates.md +316 -0
- package/pipeline/multi-agent-refs/features/unattended-security.md +731 -0
- package/pipeline/multi-agent-refs/features/url-enrichment.md +2 -2
- package/pipeline/multi-agent-refs/features/usage-reporting.md +127 -35
- package/pipeline/multi-agent-refs/features/verify-by-test.md +1 -1
- package/pipeline/multi-agent-refs/features/visual-evidence.md +7 -7
- package/pipeline/multi-agent-refs/keychain.md +6 -11
- package/pipeline/multi-agent-refs/payload-contracts.md +2 -2
- package/pipeline/multi-agent-refs/phases/log-format.md +2 -3
- package/pipeline/multi-agent-refs/phases/modes.md +10 -12
- package/pipeline/multi-agent-refs/phases/operations.md +11 -5
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +73 -81
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +22 -22
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +42 -66
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +45 -79
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +28 -38
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +27 -25
- package/pipeline/multi-agent-refs/phases.md +1 -1
- package/pipeline/multi-agent-refs/picker-contract.md +1 -1
- package/pipeline/multi-agent-refs/progress-contract.md +13 -16
- package/pipeline/multi-agent-refs/readiness-review.md +1 -1
- package/pipeline/multi-agent-refs/research/engine.md +91 -0
- package/pipeline/multi-agent-refs/rules.md +6 -4
- package/pipeline/multi-agent-refs/setup/repo-discovery.md +2 -2
- package/pipeline/multi-agent-refs/tracker-contract.md +2 -2
- package/pipeline/multi-agent-refs/unattended-contract.md +68 -16
- package/pipeline/rules/figma-pipeline.md +12 -12
- package/pipeline/schemas/agent-state.schema.json +480 -18
- package/pipeline/schemas/analysis-spec.schema.json +4 -4
- package/pipeline/schemas/answer-request.schema.json +24 -0
- package/pipeline/schemas/answer-result.schema.json +28 -0
- package/pipeline/schemas/autopilot-config.schema.json +111 -13
- package/pipeline/schemas/command-parameters.schema.json +99 -0
- package/pipeline/schemas/constitution.schema.json +56 -0
- package/pipeline/schemas/contract-error.schema.json +52 -0
- package/pipeline/schemas/design-check-config.schema.json +5 -1
- package/pipeline/schemas/issues.schema.json +61 -0
- package/pipeline/schemas/launch-plan.schema.json +46 -0
- package/pipeline/schemas/launch-request.schema.json +45 -0
- package/pipeline/schemas/launch.json +61 -0
- package/pipeline/schemas/launch.schema.json +84 -0
- package/pipeline/schemas/phases.json +2 -2
- package/pipeline/schemas/phases.schema.json +68 -0
- package/pipeline/schemas/phone-devices.schema.json +61 -0
- package/pipeline/schemas/phone-signed-request.schema.json +67 -0
- package/pipeline/schemas/plan-critique.schema.json +99 -0
- package/pipeline/schemas/plan-todos.schema.json +7 -7
- package/pipeline/schemas/planning-output.schema.json +5 -0
- package/pipeline/schemas/pr-request.schema.json +46 -0
- package/pipeline/schemas/prefs.schema.json +79 -8
- package/pipeline/schemas/research-output.schema.json +118 -0
- package/pipeline/schemas/review-file-exclusions.schema.json +25 -0
- package/pipeline/schemas/reviewer-output.schema.json +40 -4
- package/pipeline/schemas/run-questions.json +392 -0
- package/pipeline/schemas/run-questions.schema.json +118 -0
- package/pipeline/schemas/runs-index.schema.json +189 -0
- package/pipeline/schemas/scaffold-manifest.schema.json +43 -0
- package/pipeline/schemas/secret-patterns.schema.json +28 -0
- package/pipeline/schemas/stack-adapters.json +527 -0
- package/pipeline/schemas/stack-adapters.schema.json +184 -0
- package/pipeline/schemas/token-budget.json +1 -1
- package/pipeline/schemas/token-budget.schema.json +26 -0
- package/pipeline/schemas/triage-output.schema.json +64 -3
- package/pipeline/schemas/unattended-policy.json +139 -0
- package/pipeline/schemas/unattended-policy.schema.json +73 -0
- package/pipeline/schemas/unattended-profile.json +248 -0
- package/pipeline/schemas/unattended-profile.schema.json +198 -0
- package/pipeline/schemas/worktrees.schema.json +51 -0
- package/pipeline/scripts/README.md +1 -0
- package/pipeline/scripts/_autopilot-config.mjs +130 -0
- package/pipeline/scripts/_autopilot-ops.mjs +567 -0
- package/pipeline/scripts/_autopilot-outcomes.mjs +174 -0
- package/pipeline/scripts/_command-contract.mjs +384 -0
- package/pipeline/scripts/_cost.mjs +40 -0
- package/pipeline/scripts/_notices.mjs +160 -0
- package/pipeline/scripts/_phone-auth.mjs +485 -0
- package/pipeline/scripts/_pre-existing.mjs +294 -0
- package/pipeline/scripts/_redact.mjs +77 -0
- package/pipeline/scripts/_run-paths.mjs +4 -2
- package/pipeline/scripts/_stack-adapter.mjs +678 -0
- package/pipeline/scripts/_stack-routing.mjs +1 -1
- package/pipeline/scripts/agent-guard.py +348 -37
- package/pipeline/scripts/agent-guard.sh +41 -13
- package/pipeline/scripts/analysis-story-tree.mjs +79 -3
- package/pipeline/scripts/answer-question.mjs +181 -0
- package/pipeline/scripts/audit-log-rotate.sh +1 -4
- package/pipeline/scripts/audit-log.sh +4 -4
- package/pipeline/scripts/autopilot-arming.mjs +389 -21
- package/pipeline/scripts/autopilot-awake.mjs +255 -0
- package/pipeline/scripts/autopilot-intake.mjs +137 -36
- package/pipeline/scripts/autopilot-menubar.swift +156 -44
- package/pipeline/scripts/autopilot-publish.mjs +1625 -0
- package/pipeline/scripts/autopilot-runner.mjs +1678 -222
- package/pipeline/scripts/autopilot-status.sh +198 -33
- package/pipeline/scripts/build-lock.sh +120 -0
- package/pipeline/scripts/build-references.mjs +4 -1
- package/pipeline/scripts/build-stack-plugins.mjs +59 -22
- package/pipeline/scripts/capture-flush.sh +1 -1
- package/pipeline/scripts/capture-resume.sh +13 -9
- package/pipeline/scripts/check-derived-drift.mjs +52 -11
- package/pipeline/scripts/commands.mjs +88 -0
- package/pipeline/scripts/constitution.mjs +362 -0
- package/pipeline/scripts/contract-server.mjs +776 -0
- package/pipeline/scripts/cost-analyze.mjs +89 -39
- package/pipeline/scripts/diff-explain.mjs +12 -1
- package/pipeline/scripts/doctor.mjs +77 -28
- package/pipeline/scripts/evidence-gate.mjs +192 -12
- package/pipeline/scripts/feedback-send.mjs +4 -2
- package/pipeline/scripts/gate-ledger.mjs +449 -0
- package/pipeline/scripts/gc-abandoned.sh +132 -13
- package/pipeline/scripts/gen-facts.mjs +31 -15
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -3
- package/pipeline/scripts/github-ssh-setup.sh +140 -29
- package/pipeline/scripts/graph-mermaid.mjs +4 -1
- package/pipeline/scripts/issues.mjs +236 -0
- package/pipeline/scripts/jira-attach.sh +6 -2
- package/pipeline/scripts/jira-search.sh +4 -3
- package/pipeline/scripts/keychain-save.sh +125 -24
- package/pipeline/scripts/keychain.py +63 -93
- package/pipeline/scripts/launch-request.mjs +747 -0
- package/pipeline/scripts/localize-commands.mjs +4 -10
- package/pipeline/scripts/log-metric.sh +6 -5
- package/pipeline/scripts/maturity-followup.mjs +13 -4
- package/pipeline/scripts/memory-save.sh +25 -0
- package/pipeline/scripts/migrate-prefs.mjs +4 -3
- package/pipeline/scripts/open-questions-gate.mjs +276 -0
- package/pipeline/scripts/phase-tracker.sh +41 -27
- package/pipeline/scripts/phase0-exit-gate.mjs +22 -4
- package/pipeline/scripts/phone-devices.mjs +224 -0
- package/pipeline/scripts/plan-coverage-gate.mjs +200 -66
- package/pipeline/scripts/plan-critique-gate.mjs +591 -0
- package/pipeline/scripts/pr-request.mjs +188 -0
- package/pipeline/scripts/pre-commit-check.sh +115 -4
- package/pipeline/scripts/probe-evidence-capability.sh +44 -5
- package/pipeline/scripts/record-phase.mjs +71 -0
- package/pipeline/scripts/render-agent-log-cost.sh +17 -2
- package/pipeline/scripts/render-cost-summary.sh +1 -1
- package/pipeline/scripts/render-work-summary.sh +1 -1
- package/pipeline/scripts/require-supported-version.sh +4 -1
- package/pipeline/scripts/research-gate.mjs +704 -0
- package/pipeline/scripts/review-decision-gate.mjs +403 -0
- package/pipeline/scripts/routine-registry.mjs +5 -2
- package/pipeline/scripts/runs-index.mjs +135 -27
- package/pipeline/scripts/scaffold-gate.mjs +393 -0
- package/pipeline/scripts/skill-conformance.mjs +25 -8
- package/pipeline/scripts/skill-siblings.mjs +2 -1
- package/pipeline/scripts/smoke-cross-cli-behavior.sh +32 -6
- package/pipeline/scripts/smoke-schema-validation.sh +6 -2
- package/pipeline/scripts/spec-consistency-gate.mjs +469 -0
- package/pipeline/scripts/symbol-existence-gate.mjs +450 -0
- package/pipeline/scripts/test-gap-scan.mjs +40 -2
- package/pipeline/scripts/test-integrity-gate.mjs +20 -4
- package/pipeline/scripts/test-strength.mjs +484 -0
- package/pipeline/scripts/test-summary.mjs +651 -0
- package/pipeline/scripts/triage-memory.mjs +49 -9
- package/pipeline/scripts/unattended_policy.py +2786 -0
- package/pipeline/scripts/uninstall.mjs +10 -10
- package/pipeline/scripts/update-issue-progress.sh +1 -1
- package/pipeline/scripts/usage-identity.mjs +288 -0
- package/pipeline/scripts/usage-register.mjs +187 -67
- package/pipeline/scripts/usage-report.mjs +232 -67
- package/pipeline/scripts/validate-complaint-doc.mjs +28 -10
- package/pipeline/scripts/validate-planning.mjs +6 -0
- package/pipeline/scripts/verify-citations.mjs +151 -38
- package/pipeline/scripts/verify.mjs +58 -18
- package/pipeline/scripts/worktree-prepare.sh +126 -0
- package/pipeline/scripts/worktrees.mjs +124 -0
- package/pipeline/scripts/write-state.mjs +48 -17
- package/pipeline/skills/.skill-manifest.json +222 -226
- package/pipeline/skills/.skills-index.json +77 -88
- package/pipeline/skills/shared/README.md +44 -45
- package/pipeline/skills/shared/core/apple-archive-compliance/SKILL.md +3 -2
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent/SKILL.md +10 -9
- package/pipeline/skills/shared/core/multi-agent-analysis/SKILL.md +6 -5
- package/pipeline/skills/shared/core/multi-agent-analysis-jira/SKILL.md +11 -3
- package/pipeline/skills/shared/core/multi-agent-analysis-resolve/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-autopilot/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-autopilot-off/SKILL.md +32 -6
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +66 -8
- package/pipeline/skills/shared/core/multi-agent-autopilot-status/SKILL.md +27 -9
- package/pipeline/skills/shared/core/multi-agent-build-optimize/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +7 -4
- package/pipeline/skills/shared/core/multi-agent-complaint-analysis/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-create-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-design-check/SKILL.md +7 -5
- package/pipeline/skills/shared/core/multi-agent-diff-explain/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-doctor/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-feedback/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-forget/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-garbage-collect/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-graph/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-help/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-ios-coding-standard/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-kill/SKILL.md +7 -4
- package/pipeline/skills/shared/core/multi-agent-language/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-log/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-manual-test/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-model/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-prune-prompts/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-purge/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-refactor/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-research/SKILL.md +35 -0
- package/pipeline/skills/shared/core/multi-agent-resume/SKILL.md +7 -3
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +7 -5
- package/pipeline/skills/shared/core/multi-agent-review-analysis/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-review-issue/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-review-jira/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-off/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-on/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-route-status/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-routines/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-save/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-scaffold/SKILL.md +30 -0
- package/pipeline/skills/shared/core/multi-agent-scan/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-search/SKILL.md +4 -3
- package/pipeline/skills/shared/core/multi-agent-security-review/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +60 -0
- package/pipeline/skills/shared/core/multi-agent-setup/SKILL.md +8 -8
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-status/SKILL.md +7 -8
- package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-store-ready/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +10 -10
- package/pipeline/skills/shared/core/multi-agent-test/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-accessibility/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-dark-mode/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-dynamic-type/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-test-screenshots/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-testflight-validation/SKILL.md +2 -1
- package/pipeline/skills/shared/core/multi-agent-uninstall/SKILL.md +3 -2
- package/pipeline/skills/shared/core/multi-agent-update/SKILL.md +2 -1
- package/pipeline/skills/shared/external/NOTICE-avdlee-swiftui-agent-skill.md +46 -0
- package/pipeline/skills/shared/external/NOTICE-dimillian-skills.md +9 -3
- package/pipeline/skills/shared/external/NOTICE-paul-hudson-skills.md +54 -0
- package/pipeline/skills/shared/external/NOTICE-swift-ios-skills.md +9 -11
- package/pipeline/skills/shared/external/NOTICE-vibeship-spawner-skills.md +203 -0
- package/pipeline/skills/shared/external/NOTICE-xcode-build-skills.md +10 -3
- package/pipeline/skills/shared/external/accessibility-compliance-accessibility-audit/SKILL.md +131 -25
- package/pipeline/skills/shared/external/agent-introspection-debugging/SKILL.md +4 -3
- package/pipeline/skills/shared/external/alarmkit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/android-architecture/SKILL.md +85 -76
- package/pipeline/skills/shared/external/android-build-quality-gates/SKILL.md +51 -3
- package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +9 -0
- package/pipeline/skills/shared/external/android-datastore/SKILL.md +4 -3
- package/pipeline/skills/shared/external/android-design-tokens-codegen/SKILL.md +4 -3
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/SKILL.md +106 -181
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +147 -0
- package/pipeline/skills/shared/external/android-mvi-viewmodel/SKILL.md +45 -4
- package/pipeline/skills/shared/external/android-performance/SKILL.md +27 -2
- package/pipeline/skills/shared/external/android-performance/references/patterns.md +37 -37
- package/pipeline/skills/shared/external/api-patterns/SKILL.md +111 -67
- package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +128 -0
- package/pipeline/skills/shared/external/api-security-best-practices/SKILL.md +136 -186
- package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +140 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +207 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/operations.md +66 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +175 -0
- package/pipeline/skills/shared/external/app-clips/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-intents/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-store-changelog/SKILL.md +4 -3
- package/pipeline/skills/shared/external/app-store-optimization/SKILL.md +2 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/SKILL.md +2 -0
- package/pipeline/skills/shared/external/architecture/SKILL.md +106 -39
- package/pipeline/skills/shared/external/architecture/references/adr-and-review.md +76 -0
- package/pipeline/skills/shared/external/authentication/SKILL.md +2 -0
- package/pipeline/skills/shared/external/avkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/background-processing/SKILL.md +2 -1
- package/pipeline/skills/shared/external/backlog/SKILL.md +3 -2
- package/pipeline/skills/shared/external/callkit-voip/SKILL.md +2 -0
- package/pipeline/skills/shared/external/callkit-voip/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/ci-cd-pipelines/SKILL.md +3 -2
- package/pipeline/skills/shared/external/clean-code/SKILL.md +192 -90
- package/pipeline/skills/shared/external/cloudkit-sync/SKILL.md +2 -1
- package/pipeline/skills/shared/external/cloudkit-sync/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/compose-components/SKILL.md +4 -4
- package/pipeline/skills/shared/external/compose-navigation/SKILL.md +22 -22
- package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +10 -10
- package/pipeline/skills/shared/external/compose-testing/SKILL.md +13 -6
- package/pipeline/skills/shared/external/compose-testing/references/patterns.md +59 -59
- package/pipeline/skills/shared/external/contacts-framework/SKILL.md +2 -0
- package/pipeline/skills/shared/external/context-compression/SKILL.md +118 -250
- package/pipeline/skills/shared/external/core-bluetooth/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-data/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-motion/SKILL.md +2 -0
- package/pipeline/skills/shared/external/core-nfc/SKILL.md +2 -0
- package/pipeline/skills/shared/external/coreml/SKILL.md +2 -1
- package/pipeline/skills/shared/external/council/SKILL.md +2 -1
- package/pipeline/skills/shared/external/cryptokit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/css-modern/SKILL.md +3 -2
- package/pipeline/skills/shared/external/database-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/debugging-instruments/SKILL.md +2 -0
- package/pipeline/skills/shared/external/debugging-strategies/SKILL.md +130 -20
- package/pipeline/skills/shared/external/debugging-strategies/references/hard-cases.md +54 -0
- package/pipeline/skills/shared/external/device-integrity/SKILL.md +2 -0
- package/pipeline/skills/shared/external/docker-expert/SKILL.md +137 -381
- package/pipeline/skills/shared/external/docker-expert/references/patterns.md +98 -0
- package/pipeline/skills/shared/external/energykit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/eventkit-calendar/SKILL.md +3 -1
- package/pipeline/skills/shared/external/eventkit-calendar/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/fastapi-pro/SKILL.md +116 -185
- package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +235 -0
- package/pipeline/skills/shared/external/fastapi-pro/references/testing-and-deployment.md +69 -0
- package/pipeline/skills/shared/external/firebase/SKILL.md +4 -3
- package/pipeline/skills/shared/external/github-actions-templates/SKILL.md +151 -293
- package/pipeline/skills/shared/external/github-actions-templates/references/patterns.md +96 -0
- package/pipeline/skills/shared/external/healthkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/hig-components-content/SKILL.md +69 -72
- package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +111 -0
- package/pipeline/skills/shared/external/hig-components-layout/SKILL.md +77 -86
- package/pipeline/skills/shared/external/hig-components-layout/references/containers.md +98 -0
- package/pipeline/skills/shared/external/hig-components-status/SKILL.md +150 -78
- package/pipeline/skills/shared/external/hig-components-system/SKILL.md +76 -97
- package/pipeline/skills/shared/external/hig-components-system/references/surfaces.md +98 -0
- package/pipeline/skills/shared/external/hig-foundations/SKILL.md +48 -76
- package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +132 -0
- package/pipeline/skills/shared/external/hig-inputs/SKILL.md +147 -106
- package/pipeline/skills/shared/external/hig-patterns/SKILL.md +61 -77
- package/pipeline/skills/shared/external/hig-patterns/references/patterns.md +92 -0
- package/pipeline/skills/shared/external/hig-platforms/SKILL.md +147 -77
- package/pipeline/skills/shared/external/hig-technologies/SKILL.md +61 -121
- package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +108 -0
- package/pipeline/skills/shared/external/homekit-matter/SKILL.md +2 -0
- package/pipeline/skills/shared/external/homekit-matter/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/html-semantic/SKILL.md +3 -2
- package/pipeline/skills/shared/external/humanizer/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-accessibility/SKILL.md +2 -0
- package/pipeline/skills/shared/external/ios-coding-standard/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +14 -2
- package/pipeline/skills/shared/external/ios-coding-standard/references/rules.yml +2 -2
- package/pipeline/skills/shared/external/ios-debugger-agent/SKILL.md +4 -3
- package/pipeline/skills/shared/external/ios-localization/SKILL.md +8 -6
- package/pipeline/skills/shared/external/ios-localization/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +11 -11
- package/pipeline/skills/shared/external/ios-module-structure/SKILL.md +2 -1
- package/pipeline/skills/shared/external/ios-networking/SKILL.md +2 -0
- package/pipeline/skills/shared/external/ios-simulator/SKILL.md +2 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/SKILL.md +102 -193
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +103 -0
- package/pipeline/skills/shared/external/live-activities/SKILL.md +4 -2
- package/pipeline/skills/shared/external/live-activities/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/localization-reuse-map/SKILL.md +7 -9
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +3 -3
- package/pipeline/skills/shared/external/localization-reuse-map/scripts/resolve-new-values.py +2 -2
- package/pipeline/skills/shared/external/macos-menubar-tuist-app/SKILL.md +4 -3
- package/pipeline/skills/shared/external/macos-spm-app-packaging/SKILL.md +5 -3
- package/pipeline/skills/shared/external/mapkit-location/SKILL.md +2 -0
- package/pipeline/skills/shared/external/mapkit-location/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/metrickit-diagnostics/SKILL.md +2 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/monorepo-architect/SKILL.md +149 -46
- package/pipeline/skills/shared/external/monorepo-architect/references/patterns.md +70 -0
- package/pipeline/skills/shared/external/musickit-audio/SKILL.md +2 -0
- package/pipeline/skills/shared/external/musickit-audio/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/natural-language/SKILL.md +2 -0
- package/pipeline/skills/shared/external/nextjs-app-router/SKILL.md +3 -2
- package/pipeline/skills/shared/external/nodejs-backend-patterns/SKILL.md +91 -21
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +247 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/testing-and-frameworks.md +57 -0
- package/pipeline/skills/shared/external/observability-engineer/SKILL.md +155 -232
- package/pipeline/skills/shared/external/observability-engineer/references/patterns.md +75 -0
- package/pipeline/skills/shared/external/passkit-wallet/SKILL.md +2 -0
- package/pipeline/skills/shared/external/passkit-wallet/evals/evals.json +2 -2
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +18 -18
- package/pipeline/skills/shared/external/pdfkit/SKILL.md +2 -1
- package/pipeline/skills/shared/external/pencilkit-drawing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/permissionkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/photos-camera-media/SKILL.md +2 -1
- package/pipeline/skills/shared/external/push-notifications/SKILL.md +2 -0
- package/pipeline/skills/shared/external/python-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/react-best-practices/SKILL.md +3 -2
- package/pipeline/skills/shared/external/realitykit-ar/SKILL.md +2 -2
- package/pipeline/skills/shared/external/realitykit-ar/evals/evals.json +1 -1
- package/pipeline/skills/shared/external/rest-api-design/SKILL.md +3 -2
- package/pipeline/skills/shared/external/retrofit-networking/SKILL.md +7 -7
- package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +69 -69
- package/pipeline/skills/shared/external/room-database/references/patterns.md +126 -126
- package/pipeline/skills/shared/external/search-first/SKILL.md +2 -1
- package/pipeline/skills/shared/external/security-review/SKILL.md +4 -3
- package/pipeline/skills/shared/external/shareplay-activities/SKILL.md +2 -2
- package/pipeline/skills/shared/external/signal-community/SKILL.md +1 -1
- package/pipeline/skills/shared/external/skill-creator/SKILL.md +2 -1
- package/pipeline/skills/shared/external/speech-recognition/SKILL.md +2 -1
- package/pipeline/skills/shared/external/spm-build-analysis/SKILL.md +2 -0
- package/pipeline/skills/shared/external/storekit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-architecture/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-charts/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-codable/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-concurrency/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swift-concurrency-expert/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swift-concurrency-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-formatstyle/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-language/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swift-security/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-testing/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swift-testing-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +10 -0
- package/pipeline/skills/shared/external/swiftdata/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftdata-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swiftlint/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-animation/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-gestures/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-navigation/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-patterns/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-performance/SKILL.md +3 -1
- package/pipeline/skills/shared/external/swiftui-performance-audit/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swiftui-pro/SKILL.md +2 -1
- package/pipeline/skills/shared/external/swiftui-ui-patterns/SKILL.md +5 -4
- package/pipeline/skills/shared/external/swiftui-uikit-interop/SKILL.md +2 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/SKILL.md +4 -3
- package/pipeline/skills/shared/external/swiftui-webkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/tailwind-css/SKILL.md +3 -2
- package/pipeline/skills/shared/external/testing-backend/SKILL.md +3 -2
- package/pipeline/skills/shared/external/tipkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/typescript-patterns/SKILL.md +3 -2
- package/pipeline/skills/shared/external/vision-framework/SKILL.md +2 -0
- package/pipeline/skills/shared/external/vue-composition/SKILL.md +3 -2
- package/pipeline/skills/shared/external/weatherkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/web-accessibility/SKILL.md +3 -2
- package/pipeline/skills/shared/external/web-performance/SKILL.md +3 -2
- package/pipeline/skills/shared/external/web-testing/SKILL.md +3 -2
- package/pipeline/skills/shared/external/widgetkit/SKILL.md +2 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +1 -1
- package/pipeline/skills/shared/external/xcode-build-benchmark/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/SKILL.md +2 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/SKILL.md +2 -0
- package/pipeline/skills/skills-index.md +40 -41
- package/docs/token-budget-history.md +0 -24
- package/pipeline/skills/shared/external/agentflow/SKILL.md +0 -199
- package/pipeline/skills/shared/external/android-ui-verification/SKILL.md +0 -66
- package/pipeline/skills/shared/external/api-security-best-practices/references/auth.md +0 -299
- package/pipeline/skills/shared/external/api-security-best-practices/references/input-validation.md +0 -255
- package/pipeline/skills/shared/external/api-security-best-practices/references/rate-limiting.md +0 -167
- package/pipeline/skills/shared/external/closed-loop-delivery/SKILL.md +0 -116
- package/pipeline/skills/shared/external/ios-developer/SKILL.md +0 -216
|
@@ -34,6 +34,10 @@
|
|
|
34
34
|
"minimum": 1,
|
|
35
35
|
"description": "Auto-incremented local short id from .worktrees/.multi-agent-counter - unique per machine, not per project."
|
|
36
36
|
},
|
|
37
|
+
"sessionId": {
|
|
38
|
+
"type": ["string", "null"],
|
|
39
|
+
"description": "The Claude Code session id this run was launched under, copied by Phase 0 from MULTI_AGENT_SESSION_ID when the launcher set it. Continuous mode sets it to the id it passed as --session-id, and matches this field to find ITS run's state rather than another run in the same repo. Absent or null on an attended run: nothing sets the variable there."
|
|
40
|
+
},
|
|
37
41
|
"jiraId": {
|
|
38
42
|
"type": ["string", "null"],
|
|
39
43
|
"description": "Jira issue key (PROJ-12345) if the task originated from Jira, else null."
|
|
@@ -193,7 +197,7 @@
|
|
|
193
197
|
"maturity": {
|
|
194
198
|
"type": "object",
|
|
195
199
|
"additionalProperties": false,
|
|
196
|
-
"description": "How ready the fetched item was to be developed. Produced by lib/issue-fetcher.sh, which owns the gap codes and their localized wording.
|
|
200
|
+
"description": "How ready the fetched item was to be developed. Produced by lib/issue-fetcher.sh, which owns the gap codes and their localized wording. Read by Phase 0, Phase 3 and the clarifier.",
|
|
197
201
|
"properties": {
|
|
198
202
|
"score": {
|
|
199
203
|
"type": ["integer", "null"],
|
|
@@ -268,18 +272,212 @@
|
|
|
268
272
|
},
|
|
269
273
|
"waitingFor": {
|
|
270
274
|
"type": "string",
|
|
271
|
-
"enum": ["maturity", "user-channels-choice"],
|
|
272
|
-
"description": "The step a paused run must RE-ENTER, as opposed to the phase it should continue past.
|
|
275
|
+
"enum": ["maturity", "user-channels-choice", "question"],
|
|
276
|
+
"description": "The step a paused run must RE-ENTER, as opposed to the phase it should continue past. resume reads this first and falls back to currentPhase + 1 when it is absent. maturity: Phase 0's maturity step, with the item re-fetched (refs/features/maturity-followup.md). user-channels-choice: Phase 5's channels menu, with the stored channelsInput. question: the step named by pendingQuestion.stepId, answered by `resume <id> --answer <optionId>`; open-questions-gate.mjs writes it as the last step of Phase 1 with stepId phase-1/open-questions."
|
|
273
277
|
},
|
|
274
278
|
"workspaceSource": {
|
|
275
279
|
"type": "string",
|
|
276
|
-
"enum": ["asked", "command", "autopilot"],
|
|
277
|
-
"description": "Who decided where the branch lives. asked = the user answered the Step 5b workspace picker; command = a flow that only ever builds worktrees stated it up front; autopilot = resolved to a worktree without asking, because an unattended commit in the user's own checkout is what worktrees prevent. localMode alone cannot say: false is both a chosen worktree and one nothing asked about."
|
|
280
|
+
"enum": ["asked", "command", "autopilot", "request"],
|
|
281
|
+
"description": "Who decided where the branch lives. asked = the user answered the Step 5b workspace picker; command = a flow that only ever builds worktrees stated it up front; autopilot = resolved to a worktree without asking, because an unattended commit in the user's own checkout is what worktrees prevent; request = the launch request (MA_LAUNCH_REQUEST) answered the picker before the run started. localMode alone cannot say: false is both a chosen worktree and one nothing asked about."
|
|
282
|
+
},
|
|
283
|
+
"launchRequest": {
|
|
284
|
+
"type": "object",
|
|
285
|
+
"additionalProperties": false,
|
|
286
|
+
"required": ["contractVersion", "mode", "answered", "resolvedAt"],
|
|
287
|
+
"description": "Present only when Phase 0 Step 0.1 applied a launch request (launch-request.mjs resolve). Records which pickers the request answered, so a reader can tell a pre-filled answer from one the user gave in the session. Absent on every run started without MA_LAUNCH_REQUEST.",
|
|
288
|
+
"properties": {
|
|
289
|
+
"contractVersion": { "type": "string" },
|
|
290
|
+
"mode": { "enum": ["interactive", "autopilot"] },
|
|
291
|
+
"answered": {
|
|
292
|
+
"type": "array",
|
|
293
|
+
"items": { "type": "string" },
|
|
294
|
+
"description": "Question ids from run-questions.json."
|
|
295
|
+
},
|
|
296
|
+
"resolvedAt": { "type": "string", "format": "date-time" }
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
"pendingQuestion": {
|
|
300
|
+
"type": ["object", "null"],
|
|
301
|
+
"additionalProperties": false,
|
|
302
|
+
"required": ["id", "stepId", "text", "kind", "options"],
|
|
303
|
+
"description": "A question a run stopped on, with waitingFor = question. Written by the step that needed an answer; answered by `/multi-agent:resume <id> --answer <optionId>` through answer-question.mjs, which accepts only one of options[].id and clears this record in the same write. The answer selects an option; it is never read as an instruction.",
|
|
304
|
+
"properties": {
|
|
305
|
+
"id": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
308
|
+
"description": "Stable question id, a run-questions.json id when the step has one."
|
|
309
|
+
},
|
|
310
|
+
"stepId": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"minLength": 1,
|
|
313
|
+
"description": "The step to re-enter, e.g. phase-0/maturity or phase-3/user-test."
|
|
314
|
+
},
|
|
315
|
+
"text": {
|
|
316
|
+
"type": "string",
|
|
317
|
+
"minLength": 1,
|
|
318
|
+
"maxLength": 2000,
|
|
319
|
+
"description": "The question as the step would have asked it, in outputLanguage."
|
|
320
|
+
},
|
|
321
|
+
"kind": { "enum": ["single-select", "multi-select"] },
|
|
322
|
+
"options": {
|
|
323
|
+
"type": "array",
|
|
324
|
+
"minItems": 2,
|
|
325
|
+
"items": {
|
|
326
|
+
"type": "object",
|
|
327
|
+
"additionalProperties": false,
|
|
328
|
+
"required": ["id", "label"],
|
|
329
|
+
"properties": {
|
|
330
|
+
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9+_-]*$" },
|
|
331
|
+
"label": { "type": "string", "minLength": 1 }
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
"askedAt": { "type": "string", "format": "date-time" }
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
"research": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"additionalProperties": false,
|
|
341
|
+
"required": ["round", "kind", "decision", "dir", "json", "md", "closed", "at"],
|
|
342
|
+
"description": "The latest research pass over this run's gaps (refs/features/research.md), written by research-gate.mjs and by nothing else: the gate reads research/research.json, verifies every cited source, re-runs the check and records the result here. The files stay in the run's state directory; these are pointers plus the verdict. decision proceed: the check passed with the verified findings applied, and the run re-enters the step it was parked on (the maturity step, or Phase 2 for open questions). decision ask: the run is parked on a pendingQuestion that lists the gaps still open and the unverified candidates.",
|
|
343
|
+
"properties": {
|
|
344
|
+
"round": {
|
|
345
|
+
"type": "integer",
|
|
346
|
+
"minimum": 1,
|
|
347
|
+
"description": "Passes applied to this run so far. The runner's own ceiling across runs of one item is autopilot config maxAskRounds, counted from attempted.jsonl."
|
|
348
|
+
},
|
|
349
|
+
"kind": { "enum": ["maturity", "open-questions"] },
|
|
350
|
+
"decision": { "enum": ["proceed", "ask"] },
|
|
351
|
+
"reason": { "type": "string" },
|
|
352
|
+
"dir": { "type": "string", "minLength": 1 },
|
|
353
|
+
"json": {
|
|
354
|
+
"type": "string",
|
|
355
|
+
"minLength": 1,
|
|
356
|
+
"description": "research.json, schemas/research-output.schema.json."
|
|
357
|
+
},
|
|
358
|
+
"context": {
|
|
359
|
+
"type": "string",
|
|
360
|
+
"description": "context.json: the fetched descriptor and documents the evidence was checked against."
|
|
361
|
+
},
|
|
362
|
+
"md": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"minLength": 1,
|
|
365
|
+
"description": "research.md, the self-contained story the dev run reads."
|
|
366
|
+
},
|
|
367
|
+
"gaps": {
|
|
368
|
+
"type": "array",
|
|
369
|
+
"items": {
|
|
370
|
+
"type": "object",
|
|
371
|
+
"additionalProperties": false,
|
|
372
|
+
"required": ["id", "category", "status"],
|
|
373
|
+
"properties": {
|
|
374
|
+
"id": { "type": "string" },
|
|
375
|
+
"category": { "type": "string" },
|
|
376
|
+
"status": { "enum": ["closed", "candidate", "open"] },
|
|
377
|
+
"sources": { "type": "array", "items": { "type": "object" } }
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
"closed": { "type": "array", "items": { "type": "string" } },
|
|
382
|
+
"candidates": { "type": "array", "items": { "type": "string" } },
|
|
383
|
+
"open": { "type": "array", "items": { "type": "string" } },
|
|
384
|
+
"ignored": {
|
|
385
|
+
"type": "array",
|
|
386
|
+
"items": { "type": "string" },
|
|
387
|
+
"description": "Finding gap ids the run does not have."
|
|
388
|
+
},
|
|
389
|
+
"resolved": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"description": "Open questions closed by a verified source, for Phase 1 Step 5 to write into the analysis document with their source labels.",
|
|
392
|
+
"items": {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"additionalProperties": false,
|
|
395
|
+
"required": ["id", "question", "answer", "sources"],
|
|
396
|
+
"properties": {
|
|
397
|
+
"id": { "type": "string" },
|
|
398
|
+
"question": { "type": "string" },
|
|
399
|
+
"answer": { "type": "string" },
|
|
400
|
+
"sources": { "type": "array", "items": { "type": "object" } }
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
"maturityBefore": { "type": ["object", "null"] },
|
|
405
|
+
"maturityAfter": { "type": ["object", "null"] },
|
|
406
|
+
"at": { "type": "string", "format": "date-time" }
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"lastAnswer": {
|
|
410
|
+
"type": "object",
|
|
411
|
+
"additionalProperties": false,
|
|
412
|
+
"required": ["questionId", "stepId", "optionIds", "answeredAt"],
|
|
413
|
+
"description": "The answer answer-question.mjs recorded when it cleared pendingQuestion. The re-entered step reads it instead of asking again, then leaves it as a trace; the next answer overwrites it.",
|
|
414
|
+
"properties": {
|
|
415
|
+
"questionId": { "type": "string" },
|
|
416
|
+
"stepId": { "type": "string" },
|
|
417
|
+
"optionIds": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
418
|
+
"answeredAt": { "type": "string", "format": "date-time" }
|
|
419
|
+
}
|
|
278
420
|
},
|
|
279
421
|
"remoteType": {
|
|
280
422
|
"type": "string",
|
|
281
|
-
"enum": ["github", "bitbucket"],
|
|
282
|
-
"description": "Determines which PR API and reviewer strategy is used."
|
|
423
|
+
"enum": ["github", "bitbucket", "gitlab", "generic-git", "local"],
|
|
424
|
+
"description": "Determines which PR API and reviewer strategy is used. generic-git has no PR API; local means the run has no remote at all."
|
|
425
|
+
},
|
|
426
|
+
"inputType": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"enum": ["github-issue-url", "github-issue-number", "jira-url", "jira-id", "free-text"],
|
|
429
|
+
"description": "The form the task input arrived in, as Phase 0 classified it. Commands that apply to one tracker only (the issue/Jira triad) branch on it."
|
|
430
|
+
},
|
|
431
|
+
"offlineOnly": {
|
|
432
|
+
"type": "boolean",
|
|
433
|
+
"default": false,
|
|
434
|
+
"description": "True when every entry in projects[] is local. Phases 4 and 5 read it to skip the PR prompt and remote reporting."
|
|
435
|
+
},
|
|
436
|
+
"figmaUrl": {
|
|
437
|
+
"type": ["string", "null"],
|
|
438
|
+
"description": "The Figma URL found in the task body at intake, or null. Component dispatch passes it to the stack plugin's create-component skill."
|
|
439
|
+
},
|
|
440
|
+
"instructionFiles": {
|
|
441
|
+
"type": "object",
|
|
442
|
+
"additionalProperties": { "type": "string" },
|
|
443
|
+
"description": "Instruction files steering an instruction-driven run, keyed by the step they replace (start, validate, dev, commit). Empty when instructionDriven is false."
|
|
444
|
+
},
|
|
445
|
+
"contextLinks": {
|
|
446
|
+
"type": "array",
|
|
447
|
+
"description": "Typed external links extracted from the task text by lib/context-link-extractor.sh at Phase 0 Step 1b. Phase 1 dispatches each entry to its fetcher by type.",
|
|
448
|
+
"items": {
|
|
449
|
+
"type": "object",
|
|
450
|
+
"additionalProperties": false,
|
|
451
|
+
"required": ["type", "url", "metadata"],
|
|
452
|
+
"properties": {
|
|
453
|
+
"type": {
|
|
454
|
+
"enum": [
|
|
455
|
+
"swagger",
|
|
456
|
+
"confluence",
|
|
457
|
+
"crashlytics",
|
|
458
|
+
"fortify",
|
|
459
|
+
"document",
|
|
460
|
+
"graylog",
|
|
461
|
+
"figma",
|
|
462
|
+
"generic-doc"
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"url": { "type": ["string", "null"] },
|
|
466
|
+
"metadata": { "type": "object" }
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"crashContext": {
|
|
471
|
+
"type": ["object", "null"],
|
|
472
|
+
"description": "Crashlytics issue detail fetched at Phase 0 Step 1b.1 (features/url-enrichment.md). Phase 1 treats it as ground truth for the crash."
|
|
473
|
+
},
|
|
474
|
+
"fortifyFinding": {
|
|
475
|
+
"type": ["object", "null"],
|
|
476
|
+
"description": "Fortify SSC finding fetched at Phase 0 Step 1b.2 (features/url-enrichment.md), or {skipped: <reason>} when the fetch was skipped."
|
|
477
|
+
},
|
|
478
|
+
"graylogContext": {
|
|
479
|
+
"type": ["object", "array", "null"],
|
|
480
|
+
"description": "Graylog messages fetched at Phase 0 Step 1b.3 (features/url-enrichment.md): one object, an array when several ids were extracted, or {skipped: <reason>}."
|
|
283
481
|
},
|
|
284
482
|
"currentPhase": {
|
|
285
483
|
"type": "integer",
|
|
@@ -289,8 +487,13 @@
|
|
|
289
487
|
},
|
|
290
488
|
"status": {
|
|
291
489
|
"type": "string",
|
|
292
|
-
"enum": ["in_progress", "awaiting_input", "paused", "complete", "failed"],
|
|
293
|
-
"description": "Overall task status. `awaiting_input` is deliberately distinct from both `in_progress` and `paused`: the run is not broken and not resumable by a retry - it is finished with what it can do alone and is holding for a human answer, which is what Phase 5 does by design after the PR is open. Without a word for it, a run whose work had landed read exactly like one that crashed mid-development, and a state file in the wild had already invented `awaiting-user-test-main-checkout` to say it. `paused` stays what it was: stopped deliberately, resumable, nothing expected from anyone."
|
|
490
|
+
"enum": ["in_progress", "awaiting_input", "paused", "complete", "failed", "abandoned"],
|
|
491
|
+
"description": "Overall task status. `abandoned` is written only by the autopilot runner, through the locked state writer, for a run its session launched that ended with neither a PR nor a parked question; `abandonedBy` names the writer. `awaiting_input` is deliberately distinct from both `in_progress` and `paused`: the run is not broken and not resumable by a retry - it is finished with what it can do alone and is holding for a human answer, which is what Phase 5 does by design after the PR is open. Without a word for it, a run whose work had landed read exactly like one that crashed mid-development, and a state file in the wild had already invented `awaiting-user-test-main-checkout` to say it. `paused` stays what it was: stopped deliberately, resumable, nothing expected from anyone."
|
|
492
|
+
},
|
|
493
|
+
"abandonedBy": {
|
|
494
|
+
"type": "string",
|
|
495
|
+
"enum": ["autopilot-runner"],
|
|
496
|
+
"description": "Who marked the run `abandoned`. Only the autopilot runner does, and only for a run whose state carries the session id it launched the run with."
|
|
294
497
|
},
|
|
295
498
|
"startedAt": {
|
|
296
499
|
"type": "string",
|
|
@@ -407,11 +610,11 @@
|
|
|
407
610
|
"telemetry": {
|
|
408
611
|
"type": "object",
|
|
409
612
|
"additionalProperties": true,
|
|
410
|
-
"description": "Run telemetry. mcpCalls[]
|
|
613
|
+
"description": "Run telemetry. mcpCalls[] records every mcp__* invocation tagged with the phase it ran in; smoke-no-mcp-in-dev-phases.sh audits it for Figma calls outside analysis as a maintainer regression check. skillCalls[] is Phase 3's self-report of which skills, plugin skills and guides it consulted; Phase 3 Step 1.78 reads it as CORROBORATING evidence only and never computes coverage from it.",
|
|
411
614
|
"properties": {
|
|
412
615
|
"mcpCalls": {
|
|
413
616
|
"type": "array",
|
|
414
|
-
"description": "One entry per MCP tool invocation during the run.
|
|
617
|
+
"description": "One entry per MCP tool invocation during the run. A Figma tool entry with phase >= 2 is a violation of the analysis-only design source.",
|
|
415
618
|
"items": {
|
|
416
619
|
"type": "object",
|
|
417
620
|
"required": ["tool", "phase"],
|
|
@@ -424,7 +627,7 @@
|
|
|
424
627
|
"type": "integer",
|
|
425
628
|
"minimum": 0,
|
|
426
629
|
"maximum": 5,
|
|
427
|
-
"description": "Pipeline phase the call ran in.
|
|
630
|
+
"description": "Pipeline phase the call ran in. Figma tools are permitted only in 0 (init) and 1 (analysis)."
|
|
428
631
|
},
|
|
429
632
|
"timestamp": {
|
|
430
633
|
"type": "string",
|
|
@@ -484,11 +687,20 @@
|
|
|
484
687
|
"instructionDriven": {
|
|
485
688
|
"type": "boolean",
|
|
486
689
|
"default": false,
|
|
487
|
-
"description": "A Figma / skill instruction file is steering phases
|
|
690
|
+
"description": "A Figma / skill instruction file is steering phases 2-4."
|
|
488
691
|
},
|
|
489
692
|
"mode": {
|
|
490
693
|
"type": ["string", "null"],
|
|
491
|
-
"description": "Pipeline mode for this run (e.g. '
|
|
694
|
+
"description": "Pipeline mode for this run (e.g. 'autopilot', 'analysis', 'design-check'). Absent = full pipeline."
|
|
695
|
+
},
|
|
696
|
+
"taskType": {
|
|
697
|
+
"type": "string",
|
|
698
|
+
"enum": ["component", "bugfix", "feature", "refactor", "chore"],
|
|
699
|
+
"description": "Phase 0 Step 7 classification. Phase 2 branches on it, and phase0-exit-gate.mjs fails a run that reaches Phase 1 without it. A Figma reference forces component."
|
|
700
|
+
},
|
|
701
|
+
"plan": {
|
|
702
|
+
"type": ["object", "null"],
|
|
703
|
+
"description": "The Phase 1 plan as a Todo list, written by plan-todos.sh when prefs.global.planTodos.enabled is true. Shape: plan-todos.schema.json, which plan-todos.sh validates on write; absent when the opt-in is off."
|
|
492
704
|
},
|
|
493
705
|
"analysis": {
|
|
494
706
|
"type": ["object", "null"],
|
|
@@ -511,6 +723,25 @@
|
|
|
511
723
|
"type": ["object", "null"],
|
|
512
724
|
"additionalProperties": true,
|
|
513
725
|
"description": "Parsed YAML header of the active platform's document."
|
|
726
|
+
},
|
|
727
|
+
"openQuestions": {
|
|
728
|
+
"type": "array",
|
|
729
|
+
"description": "Section 20 rows Phase 1 Step 5 deferred. open-questions-gate.mjs parks a gated run on a non-empty list and passes on an empty one; absent means no analysis recorded any.",
|
|
730
|
+
"items": { "type": ["string", "object"] }
|
|
731
|
+
},
|
|
732
|
+
"assumptions": {
|
|
733
|
+
"type": "array",
|
|
734
|
+
"description": "Open questions the run continues on as stated assumptions, moved here by open-questions-gate.mjs when the answer to its parked question is `assume`.",
|
|
735
|
+
"items": {
|
|
736
|
+
"type": "object",
|
|
737
|
+
"additionalProperties": false,
|
|
738
|
+
"required": ["question", "source", "assumedAt"],
|
|
739
|
+
"properties": {
|
|
740
|
+
"question": { "type": "string" },
|
|
741
|
+
"source": { "type": "string" },
|
|
742
|
+
"assumedAt": { "type": "string", "format": "date-time" }
|
|
743
|
+
}
|
|
744
|
+
}
|
|
514
745
|
}
|
|
515
746
|
}
|
|
516
747
|
},
|
|
@@ -782,7 +1013,7 @@
|
|
|
782
1013
|
"type": "integer",
|
|
783
1014
|
"minimum": 0,
|
|
784
1015
|
"maximum": 2,
|
|
785
|
-
"description": "v5.3.0 Phase 1 Plan Approval Gate - number of clarification question/answer rounds the orchestrator ran before producing the first plan. Cap 2; hitting the cap produces a 'best-effort' plan instead of asking more questions. Only emitted on
|
|
1016
|
+
"description": "v5.3.0 Phase 1 Plan Approval Gate - number of clarification question/answer rounds the orchestrator ran before producing the first plan. Cap 2; hitting the cap produces a 'best-effort' plan instead of asking more questions. Only emitted on an interactive run (autopilot may not ask)."
|
|
786
1017
|
},
|
|
787
1018
|
"clarificationQuestions": {
|
|
788
1019
|
"type": "array",
|
|
@@ -806,7 +1037,7 @@
|
|
|
806
1037
|
"planApprovedAt": {
|
|
807
1038
|
"type": ["string", "null"],
|
|
808
1039
|
"format": "date-time",
|
|
809
|
-
"description": "v5.3.0 Phase 1 Plan Approval Gate - timestamp when the user approved the plan. Null when the gate is not applicable (
|
|
1040
|
+
"description": "v5.3.0 Phase 1 Plan Approval Gate - timestamp when the user approved the plan. Null when the gate is not applicable (autopilot) or the task was aborted at the gate."
|
|
810
1041
|
},
|
|
811
1042
|
"planEditRequests": {
|
|
812
1043
|
"type": "array",
|
|
@@ -854,6 +1085,10 @@
|
|
|
854
1085
|
"description": "The exact test command that produced this baseline. Phase 3 compares against its own Gate 3 command and treats a mismatch as unknown."
|
|
855
1086
|
}
|
|
856
1087
|
}
|
|
1088
|
+
},
|
|
1089
|
+
"sha": {
|
|
1090
|
+
"type": "string",
|
|
1091
|
+
"description": "The base commit the baseline was captured at. Pre-existing claims in unattended runs are checked against it (verify-citations.mjs)."
|
|
857
1092
|
}
|
|
858
1093
|
}
|
|
859
1094
|
},
|
|
@@ -1089,7 +1324,27 @@
|
|
|
1089
1324
|
"accepted": {
|
|
1090
1325
|
"type": "array"
|
|
1091
1326
|
},
|
|
1092
|
-
"validatorResult": {}
|
|
1327
|
+
"validatorResult": {},
|
|
1328
|
+
"reviewDecision": {
|
|
1329
|
+
"type": "object",
|
|
1330
|
+
"additionalProperties": true,
|
|
1331
|
+
"description": "review-decision-gate.mjs --json output for this iteration, merged by Phase 3 after Step 3.7 while the quality gates are active (features/review-decision.md). kept[] lists the blocking findings that stayed blocking with their basis (corroborated | failing-test | test-integrity); downgraded[] lists each blocking finding lowered to important with its fingerprint and reason. Absent on an attended run.",
|
|
1332
|
+
"properties": {
|
|
1333
|
+
"verdict": {
|
|
1334
|
+
"type": "string",
|
|
1335
|
+
"enum": ["pass", "rebuttal-round", "unreadable"]
|
|
1336
|
+
},
|
|
1337
|
+
"approved": {
|
|
1338
|
+
"type": "boolean"
|
|
1339
|
+
},
|
|
1340
|
+
"kept": {
|
|
1341
|
+
"type": "array"
|
|
1342
|
+
},
|
|
1343
|
+
"downgraded": {
|
|
1344
|
+
"type": "array"
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1093
1348
|
}
|
|
1094
1349
|
}
|
|
1095
1350
|
},
|
|
@@ -1253,7 +1508,7 @@
|
|
|
1253
1508
|
},
|
|
1254
1509
|
"remoteType": {
|
|
1255
1510
|
"type": "string",
|
|
1256
|
-
"enum": ["github", "bitbucket", "gitlab", "generic-git"]
|
|
1511
|
+
"enum": ["github", "bitbucket", "gitlab", "generic-git", "local"]
|
|
1257
1512
|
},
|
|
1258
1513
|
"identity": {
|
|
1259
1514
|
"type": "object",
|
|
@@ -1617,6 +1872,213 @@
|
|
|
1617
1872
|
}
|
|
1618
1873
|
}
|
|
1619
1874
|
}
|
|
1875
|
+
},
|
|
1876
|
+
"gates": {
|
|
1877
|
+
"type": "array",
|
|
1878
|
+
"description": "Gate ledger, written while the quality gates are active (lib/unattended.mjs gatesActive: MULTI_AGENT_UNATTENDED=1, or state.autopilot true): one entry per verdict, appended by gate-ledger.mjs under the write-state lock. With MULTI_AGENT_UNATTENDED=1 in its environment, pre-commit-check.sh blocks a commit unless the latest entry of every mandatory gate for HEAD is pass or not-applicable. Absent in a run with neither.",
|
|
1879
|
+
"items": {
|
|
1880
|
+
"type": "object",
|
|
1881
|
+
"additionalProperties": false,
|
|
1882
|
+
"required": ["gate", "verdict", "at", "sha", "detail"],
|
|
1883
|
+
"properties": {
|
|
1884
|
+
"gate": {
|
|
1885
|
+
"type": "string",
|
|
1886
|
+
"minLength": 1,
|
|
1887
|
+
"description": "Gate id, e.g. evidence-gate/test, test-summary, symbol-existence."
|
|
1888
|
+
},
|
|
1889
|
+
"verdict": {
|
|
1890
|
+
"type": "string",
|
|
1891
|
+
"enum": ["pass", "fail", "not-applicable"]
|
|
1892
|
+
},
|
|
1893
|
+
"at": {
|
|
1894
|
+
"type": "string",
|
|
1895
|
+
"format": "date-time"
|
|
1896
|
+
},
|
|
1897
|
+
"sha": {
|
|
1898
|
+
"type": ["string", "null"],
|
|
1899
|
+
"description": "Repository HEAD the gate ran against."
|
|
1900
|
+
},
|
|
1901
|
+
"detail": {
|
|
1902
|
+
"type": "object",
|
|
1903
|
+
"additionalProperties": true
|
|
1904
|
+
}
|
|
1905
|
+
}
|
|
1906
|
+
}
|
|
1907
|
+
},
|
|
1908
|
+
"planCritique": {
|
|
1909
|
+
"type": "object",
|
|
1910
|
+
"additionalProperties": false,
|
|
1911
|
+
"required": ["round", "digest", "verdict", "at"],
|
|
1912
|
+
"description": "The one plan-critique round of this run (refs/features/plan-critic.md), written by plan-critique-gate.mjs and by nothing else while the quality gates are active. digest is the sha256 of the judged critique with its replies; a later invocation with a different digest is refused as a second round. advisory is what Phase 1 carries into the plan and Phase 4 into the PR summary.",
|
|
1913
|
+
"properties": {
|
|
1914
|
+
"round": { "type": "integer", "const": 1 },
|
|
1915
|
+
"path": { "type": "string" },
|
|
1916
|
+
"digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
|
1917
|
+
"objectionsDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
|
1918
|
+
"verdict": { "enum": ["pass", "fail"] },
|
|
1919
|
+
"objections": { "type": "integer", "minimum": 0 },
|
|
1920
|
+
"blocking": {
|
|
1921
|
+
"type": "array",
|
|
1922
|
+
"items": {
|
|
1923
|
+
"type": "object",
|
|
1924
|
+
"additionalProperties": false,
|
|
1925
|
+
"required": ["objection", "rule", "reason"],
|
|
1926
|
+
"properties": {
|
|
1927
|
+
"objection": { "type": "string" },
|
|
1928
|
+
"rule": { "type": "string" },
|
|
1929
|
+
"reason": { "type": "string" }
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
},
|
|
1933
|
+
"advisory": {
|
|
1934
|
+
"type": "array",
|
|
1935
|
+
"items": {
|
|
1936
|
+
"type": "object",
|
|
1937
|
+
"additionalProperties": false,
|
|
1938
|
+
"required": ["objection", "lens", "claim", "label", "reply"],
|
|
1939
|
+
"properties": {
|
|
1940
|
+
"objection": { "type": "string" },
|
|
1941
|
+
"lens": { "enum": ["scope", "feasibility", "security", "alternative"] },
|
|
1942
|
+
"claim": { "type": "string" },
|
|
1943
|
+
"label": { "enum": ["anchored", "inference"] },
|
|
1944
|
+
"rule": { "type": "string" },
|
|
1945
|
+
"ruleStatus": { "enum": ["binding", "proposed", "unknown", "unchecked"] },
|
|
1946
|
+
"reply": { "enum": ["accept", "rebut", null] }
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
},
|
|
1950
|
+
"at": { "type": "string", "format": "date-time" }
|
|
1951
|
+
}
|
|
1952
|
+
},
|
|
1953
|
+
"publish": {
|
|
1954
|
+
"type": "object",
|
|
1955
|
+
"additionalProperties": false,
|
|
1956
|
+
"required": ["outcome", "at"],
|
|
1957
|
+
"description": "Written by the autopilot runner's publish step (autopilot-publish.mjs) when it pushed a verified branch to a host with no draft PR. The runner reports it as pushed-awaiting-pr. A GitHub publish writes `pr` instead; a refused one writes `verificationFailed` with a `publish/<gate>` gate.",
|
|
1958
|
+
"properties": {
|
|
1959
|
+
"outcome": { "const": "pushed-awaiting-pr" },
|
|
1960
|
+
"at": { "type": "string", "format": "date-time" },
|
|
1961
|
+
"host": { "type": "string" },
|
|
1962
|
+
"branch": { "type": "string" },
|
|
1963
|
+
"base": { "type": "string" },
|
|
1964
|
+
"sha": { "type": "string" }
|
|
1965
|
+
}
|
|
1966
|
+
},
|
|
1967
|
+
"verificationFailed": {
|
|
1968
|
+
"type": "object",
|
|
1969
|
+
"additionalProperties": false,
|
|
1970
|
+
"required": ["gate", "reason", "at"],
|
|
1971
|
+
"description": "Set by gate-ledger.mjs park when an unattended run's own gate rejected its work. The runner reports the attempt as verification-failed (parked, not retried).",
|
|
1972
|
+
"properties": {
|
|
1973
|
+
"gate": {
|
|
1974
|
+
"type": "string",
|
|
1975
|
+
"minLength": 1
|
|
1976
|
+
},
|
|
1977
|
+
"reason": {
|
|
1978
|
+
"type": "string"
|
|
1979
|
+
},
|
|
1980
|
+
"at": {
|
|
1981
|
+
"type": "string",
|
|
1982
|
+
"format": "date-time"
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1986
|
+
"review": {
|
|
1987
|
+
"type": ["object", "null"],
|
|
1988
|
+
"additionalProperties": true,
|
|
1989
|
+
"description": "State for a standalone /multi-agent:review run. post-pr-review.sh reads input, findings, iterationNumber and headCommitSha to post the verdict.",
|
|
1990
|
+
"properties": {
|
|
1991
|
+
"input": {
|
|
1992
|
+
"type": "object",
|
|
1993
|
+
"additionalProperties": false,
|
|
1994
|
+
"required": ["kind", "provider", "raw"],
|
|
1995
|
+
"description": "Parsed review target.",
|
|
1996
|
+
"properties": {
|
|
1997
|
+
"kind": {
|
|
1998
|
+
"type": "string",
|
|
1999
|
+
"enum": ["pr", "branch", "pick"]
|
|
2000
|
+
},
|
|
2001
|
+
"provider": {
|
|
2002
|
+
"type": "string",
|
|
2003
|
+
"enum": ["github", "bitbucket-server", "local"]
|
|
2004
|
+
},
|
|
2005
|
+
"ref": {
|
|
2006
|
+
"type": "string"
|
|
2007
|
+
},
|
|
2008
|
+
"orgRepo": {
|
|
2009
|
+
"type": "string"
|
|
2010
|
+
},
|
|
2011
|
+
"host": {
|
|
2012
|
+
"type": "string"
|
|
2013
|
+
},
|
|
2014
|
+
"bbServerHost": {
|
|
2015
|
+
"type": "string"
|
|
2016
|
+
},
|
|
2017
|
+
"bbProjectKey": {
|
|
2018
|
+
"type": "string"
|
|
2019
|
+
},
|
|
2020
|
+
"bbRepoSlug": {
|
|
2021
|
+
"type": "string"
|
|
2022
|
+
},
|
|
2023
|
+
"prNumber": {
|
|
2024
|
+
"type": ["integer", "string"]
|
|
2025
|
+
},
|
|
2026
|
+
"raw": {
|
|
2027
|
+
"type": "string"
|
|
2028
|
+
}
|
|
2029
|
+
}
|
|
2030
|
+
},
|
|
2031
|
+
"headCommitSha": {
|
|
2032
|
+
"type": "string",
|
|
2033
|
+
"description": "PR head commit; GitHub inline comments require it as commit_id."
|
|
2034
|
+
},
|
|
2035
|
+
"moduleGuides": {
|
|
2036
|
+
"type": "array",
|
|
2037
|
+
"items": {
|
|
2038
|
+
"type": "string"
|
|
2039
|
+
},
|
|
2040
|
+
"description": "Repo-relative module guide paths injected into every reviewer prompt."
|
|
2041
|
+
},
|
|
2042
|
+
"findings": {
|
|
2043
|
+
"type": "array",
|
|
2044
|
+
"items": {
|
|
2045
|
+
"type": "object",
|
|
2046
|
+
"additionalProperties": true,
|
|
2047
|
+
"properties": {
|
|
2048
|
+
"severity": {
|
|
2049
|
+
"type": "string"
|
|
2050
|
+
},
|
|
2051
|
+
"status": {
|
|
2052
|
+
"type": "string"
|
|
2053
|
+
},
|
|
2054
|
+
"file": {
|
|
2055
|
+
"type": "string"
|
|
2056
|
+
},
|
|
2057
|
+
"line": {
|
|
2058
|
+
"type": ["integer", "null"]
|
|
2059
|
+
},
|
|
2060
|
+
"issue": {
|
|
2061
|
+
"type": "string"
|
|
2062
|
+
},
|
|
2063
|
+
"fix": {
|
|
2064
|
+
"type": "string"
|
|
2065
|
+
},
|
|
2066
|
+
"ruleId": {
|
|
2067
|
+
"type": "string"
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
},
|
|
2072
|
+
"iterationNumber": {
|
|
2073
|
+
"type": "integer",
|
|
2074
|
+
"minimum": 1
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
},
|
|
2078
|
+
"complaintSpec": {
|
|
2079
|
+
"type": ["object", "null"],
|
|
2080
|
+
"additionalProperties": true,
|
|
2081
|
+
"description": "Answers and progress of a /multi-agent:complaint-analysis run. Shape: complaint-analysis-spec.schema.json."
|
|
1620
2082
|
}
|
|
1621
2083
|
}
|
|
1622
2084
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"$id": "https://github.com/{owner}/multi-agent-pipeline/pipeline/schemas/analysis-spec.schema.json",
|
|
4
4
|
"version": "1.3.0",
|
|
5
5
|
"title": "Multi-Agent Pipeline - /multi-agent:analysis spec output (v3 template)",
|
|
6
|
-
"description": "Contract for the feature-spec analysis document generated by /multi-agent:analysis. Platform-agnostic concept layer + Pass B per-platform render with repo-driven conventions. 23 sections
|
|
6
|
+
"description": "Contract for the feature-spec analysis document generated by /multi-agent:analysis. Platform-agnostic concept layer + Pass B per-platform render with repo-driven conventions. 23 sections. Sections may be absent - omission is the policy when no evidence exists.",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
|
9
9
|
"required": ["featureName", "language", "platforms", "repos", "evidence", "sections"],
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
"type": "string",
|
|
39
39
|
"enum": ["full", "lite"],
|
|
40
40
|
"default": "full",
|
|
41
|
-
"description": "
|
|
41
|
+
"description": "Always full: sections are chosen by the omission table, not by a mode. `lite` is accepted only so documents written before v19.0.0 still validate; validate-analysis-doc.mjs reports it as a legacy value."
|
|
42
42
|
},
|
|
43
43
|
"liteModeAuto": {
|
|
44
44
|
"type": "boolean",
|
|
45
45
|
"default": false,
|
|
46
|
-
"description": "
|
|
46
|
+
"description": "Never written. Accepted only so documents written before v19.0.0 still validate."
|
|
47
47
|
},
|
|
48
48
|
"templateVersion": {
|
|
49
49
|
"type": "string",
|
|
@@ -898,7 +898,7 @@
|
|
|
898
898
|
},
|
|
899
899
|
"glossary": {
|
|
900
900
|
"type": ["object", "null"],
|
|
901
|
-
"description": "Section 22 - Sözlük (footer).
|
|
901
|
+
"description": "Section 22 - Sözlük (footer). Default drop; see the omission table."
|
|
902
902
|
},
|
|
903
903
|
"changelog": {
|
|
904
904
|
"type": ["object", "null"],
|