@mmerterden/multi-agent-pipeline 20.2.1 → 20.3.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/CHANGELOG.md +912 -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 +616 -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/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 +185 -65
- package/pipeline/scripts/usage-report.mjs +230 -66
- 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
|
@@ -1,63 +1,166 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: monorepo-architect
|
|
3
|
-
description: "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: "Monorepo structure: pnpm workspaces, Turborepo or Nx task graphs, affected-only CI, remote cache, package boundaries, Changesets, CODEOWNERS. Use when setting up, migrating to or speeding up a monorepo."
|
|
4
|
+
metadata:
|
|
5
|
+
risk: safe
|
|
6
|
+
source: multi-agent-pipeline
|
|
7
|
+
date_added: "2026-09-25"
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
# Monorepo
|
|
10
|
+
# Monorepo Architecture
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
A monorepo pays off when changes regularly cross project lines: one commit can
|
|
13
|
+
update a shared library and every consumer, and one CI run proves they still
|
|
14
|
+
agree. It costs build time and coordination unless the tooling only does work
|
|
15
|
+
for what changed. This skill is about keeping that trade favourable.
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
Gradle multi-project builds are covered by `gradle-kotlin-dsl`; Swift packages
|
|
18
|
+
by the iOS build skills. The ideas below transfer, the commands do not.
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
- You need a different domain or tool outside this scope
|
|
20
|
+
## Decide first
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
| Question | If yes | If no |
|
|
23
|
+
|----------|--------|-------|
|
|
24
|
+
| Do most changes touch more than one project? | monorepo helps | separate repos may be simpler |
|
|
25
|
+
| Do projects share a language and toolchain? | one workspace tool fits | expect a polyglot tool (Bazel, Pants) or per-area tooling |
|
|
26
|
+
| Must parts be released on independent schedules? | plan versioning per package | a single version is fine |
|
|
27
|
+
| Are access rules per project strict (legal, vendor)? | monorepo is harder | no issue |
|
|
19
28
|
|
|
20
|
-
|
|
21
|
-
- Apply relevant best practices and validate outcomes.
|
|
22
|
-
- Provide actionable steps and verification.
|
|
29
|
+
## Layout
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
```
|
|
32
|
+
.
|
|
33
|
+
├── apps/
|
|
34
|
+
│ ├── storefront/ # deployable web app
|
|
35
|
+
│ └── orders-api/ # deployable service
|
|
36
|
+
├── packages/
|
|
37
|
+
│ ├── ui/ # shared components, internal
|
|
38
|
+
│ ├── money/ # published library
|
|
39
|
+
│ └── config-eslint/ # shared tool config
|
|
40
|
+
├── tooling/ # generators, scripts
|
|
41
|
+
├── pnpm-workspace.yaml
|
|
42
|
+
├── turbo.json # or nx.json
|
|
43
|
+
└── package.json # root: dev tooling only, private
|
|
44
|
+
```
|
|
25
45
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
- Affected/changed detection for CI optimization
|
|
31
|
-
- Code sharing and library extraction
|
|
32
|
-
- Task orchestration and parallelization
|
|
46
|
+
- `apps/` are leaves: nothing depends on an app.
|
|
47
|
+
- `packages/` are libraries; each has one clear owner and purpose.
|
|
48
|
+
- The root `package.json` is `"private": true` and holds tools, not runtime
|
|
49
|
+
dependencies.
|
|
33
50
|
|
|
34
|
-
##
|
|
51
|
+
## Workspaces
|
|
35
52
|
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
- Optimizing slow CI/CD pipelines
|
|
39
|
-
- Sharing code between multiple applications
|
|
40
|
-
- Managing dependencies across projects
|
|
41
|
-
- Implementing consistent tooling across teams
|
|
53
|
+
pnpm is the usual choice: strict `node_modules` (no phantom dependencies),
|
|
54
|
+
content-addressed store, fast installs.
|
|
42
55
|
|
|
43
|
-
|
|
56
|
+
```yaml
|
|
57
|
+
# pnpm-workspace.yaml
|
|
58
|
+
packages:
|
|
59
|
+
- "apps/*"
|
|
60
|
+
- "packages/*"
|
|
61
|
+
catalog:
|
|
62
|
+
typescript: ^5.6.0
|
|
63
|
+
zod: ^3.23.0
|
|
64
|
+
```
|
|
44
65
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"name": "@shop/storefront",
|
|
69
|
+
"private": true,
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"@shop/ui": "workspace:*",
|
|
72
|
+
"@shop/money": "workspace:^",
|
|
73
|
+
"zod": "catalog:"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
53
77
|
|
|
54
|
-
|
|
78
|
+
- `workspace:` links the local package; on publish pnpm rewrites it to a real
|
|
79
|
+
version range.
|
|
80
|
+
- `catalog:` keeps one version of a shared third-party dependency across the
|
|
81
|
+
repo. npm and Yarn workspaces work too; npm lacks catalogs, so use a lint rule
|
|
82
|
+
(syncpack, `manypkg`) to keep versions aligned.
|
|
83
|
+
- Commit one lockfile at the root. CI installs with `--frozen-lockfile`.
|
|
55
84
|
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
85
|
+
## Affected-only CI
|
|
86
|
+
|
|
87
|
+
Run tasks only for projects changed since the merge base and their dependents.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Turborepo
|
|
91
|
+
pnpm turbo run lint test build --filter="...[origin/main]"
|
|
92
|
+
|
|
93
|
+
# Nx
|
|
94
|
+
pnpm nx affected -t lint test build --base=origin/main --head=HEAD
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- Check out enough history for the merge base (`fetch-depth: 0` or a fetch of
|
|
98
|
+
the base branch).
|
|
99
|
+
- Changes to root files (lockfile, root tsconfig, CI config) should mark
|
|
100
|
+
everything affected; both tools do this when those files are declared as
|
|
101
|
+
global inputs.
|
|
102
|
+
- Keep a nightly full run to catch anything the graph missed.
|
|
103
|
+
|
|
104
|
+
## Remote cache
|
|
105
|
+
|
|
106
|
+
A shared cache lets CI and developers reuse each other's task results.
|
|
107
|
+
|
|
108
|
+
- Turborepo: Vercel Remote Cache or a self-hosted server implementing the API
|
|
109
|
+
(`TURBO_API`, `TURBO_TOKEN`, `TURBO_TEAM`).
|
|
110
|
+
- Nx: Nx Cloud, or a self-hosted cache package.
|
|
111
|
+
- CI writes, developers read; restrict write tokens to protected branches so a
|
|
112
|
+
malicious branch cannot poison artifacts.
|
|
113
|
+
|
|
114
|
+
## Boundaries
|
|
115
|
+
|
|
116
|
+
Without enforcement, every package slowly imports every other one and the
|
|
117
|
+
graph turns into a single blob that always rebuilds.
|
|
118
|
+
|
|
119
|
+
- Tag projects by type and scope (`type:app`, `type:ui`, `type:data`,
|
|
120
|
+
`scope:orders`, `scope:catalog`) and allow only certain edges. Nx enforces
|
|
121
|
+
this with the `@nx/enforce-module-boundaries` ESLint rule; in a Turborepo
|
|
122
|
+
setup use `eslint-plugin-boundaries` or dependency-cruiser.
|
|
123
|
+
- Import packages only through their public entry (`exports` in
|
|
124
|
+
`package.json`), never `@shop/ui/src/internal/...`.
|
|
125
|
+
- No cycles. Break one by extracting the shared piece into a lower package.
|
|
126
|
+
- TypeScript project references (`composite: true`, `references`) give
|
|
127
|
+
incremental type checking that follows the same graph.
|
|
128
|
+
|
|
129
|
+
## Internal versus published packages
|
|
130
|
+
|
|
131
|
+
| Kind | Build | Version |
|
|
132
|
+
|------|-------|---------|
|
|
133
|
+
| Internal, source-consumed | none; consumers compile its TypeScript directly via `exports` pointing at `src` | `0.0.0`, `private: true` |
|
|
134
|
+
| Internal, prebuilt | builds to `dist`, cached | `private: true` |
|
|
135
|
+
| Published | builds to `dist`, typed exports, changelog | semver via Changesets |
|
|
136
|
+
|
|
137
|
+
Source-consumed internal packages are the simplest start; switch a package to
|
|
138
|
+
prebuilt when its consumers' build times grow.
|
|
139
|
+
|
|
140
|
+
## Ownership
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
# .github/CODEOWNERS
|
|
144
|
+
/apps/storefront/ @shop/web-team
|
|
145
|
+
/apps/orders-api/ @shop/orders-team
|
|
146
|
+
/packages/money/ @shop/platform-team
|
|
147
|
+
/pnpm-workspace.yaml @shop/platform-team
|
|
148
|
+
/.github/ @shop/platform-team
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Pair CODEOWNERS with branch protection that requires owner review, so a change
|
|
152
|
+
to a shared package cannot merge without its owners.
|
|
153
|
+
|
|
154
|
+
## Symptoms and fixes
|
|
155
|
+
|
|
156
|
+
| Symptom | Likely cause |
|
|
157
|
+
|---------|--------------|
|
|
158
|
+
| Every PR rebuilds everything | a root file declared as global input changes often, or an app is depended on |
|
|
159
|
+
| Cache hits produce wrong output | undeclared env var or file input |
|
|
160
|
+
| "Module not found" only in CI | phantom dependency hoisted locally; add it to the package's own `dependencies` |
|
|
161
|
+
| Two copies of a library at runtime | version drift; use a catalog or align ranges |
|
|
162
|
+
| Release publishes unexpected packages | missing `private: true` on an internal package |
|
|
163
|
+
|
|
164
|
+
## References
|
|
165
|
+
|
|
166
|
+
- `references/patterns.md`: Turborepo/Nx task graph and cache inputs, Changesets release flow, and moving existing repos in with history. Load it when the task reaches those topics.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Monorepo patterns
|
|
2
|
+
|
|
3
|
+
Loaded on demand from `../SKILL.md`.
|
|
4
|
+
|
|
5
|
+
## Task graph
|
|
6
|
+
|
|
7
|
+
The build tool needs to know, for each task, what it depends on, what inputs
|
|
8
|
+
change its result, and what outputs it produces. With that, it can order work,
|
|
9
|
+
run independent tasks in parallel and skip tasks whose inputs did not change.
|
|
10
|
+
|
|
11
|
+
Turborepo:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"$schema": "https://turbo.build/schema.json",
|
|
16
|
+
"tasks": {
|
|
17
|
+
"build": {
|
|
18
|
+
"dependsOn": ["^build"],
|
|
19
|
+
"inputs": ["src/**", "package.json", "tsconfig.json"],
|
|
20
|
+
"outputs": ["dist/**"]
|
|
21
|
+
},
|
|
22
|
+
"test": {
|
|
23
|
+
"dependsOn": ["^build"],
|
|
24
|
+
"inputs": ["src/**", "test/**"],
|
|
25
|
+
"outputs": ["coverage/**"]
|
|
26
|
+
},
|
|
27
|
+
"lint": {},
|
|
28
|
+
"dev": { "cache": false, "persistent": true }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`^build` means "build my dependencies first". Nx expresses the same with
|
|
34
|
+
`targetDefaults` and `namedInputs` in `nx.json`, and can infer targets from
|
|
35
|
+
tool config files.
|
|
36
|
+
|
|
37
|
+
Rules that keep caching correct:
|
|
38
|
+
|
|
39
|
+
- Declare every input that changes output, including env vars
|
|
40
|
+
(`env` in Turborepo, `{env.X}` inputs in Nx). An undeclared input gives stale
|
|
41
|
+
cache hits.
|
|
42
|
+
- Declare outputs precisely; a missing output is not restored on a hit.
|
|
43
|
+
- Tasks must be deterministic: no timestamps or absolute paths in artifacts.
|
|
44
|
+
|
|
45
|
+
## Versioning and release with Changesets
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pnpm changeset # author picks packages and bump type, writes a note
|
|
49
|
+
pnpm changeset version # applies bumps, updates changelogs and dependents
|
|
50
|
+
pnpm changeset publish # publishes what changed, tags releases
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- Each PR that changes a published package includes a changeset file; a CI
|
|
54
|
+
check fails when one is missing.
|
|
55
|
+
- The Changesets GitHub action opens a "Version Packages" PR; merging it
|
|
56
|
+
publishes.
|
|
57
|
+
- `fixed` groups keep packages on one shared version; `linked` bumps them
|
|
58
|
+
together only when released together.
|
|
59
|
+
- Apps are not versioned by Changesets; they deploy by commit.
|
|
60
|
+
|
|
61
|
+
## Migrating repos in
|
|
62
|
+
|
|
63
|
+
1. Import each repo with history into its target folder (`git subtree add` or
|
|
64
|
+
`git filter-repo --to-subdirectory-filter`), one at a time.
|
|
65
|
+
2. Align toolchain versions (Node, TypeScript, lint config) before merging
|
|
66
|
+
dependency trees.
|
|
67
|
+
3. Replace published-version dependencies between the imported projects with
|
|
68
|
+
`workspace:` links.
|
|
69
|
+
4. Add the task graph and affected CI before the third project arrives, not
|
|
70
|
+
after CI times double.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: musickit-audio
|
|
3
3
|
description: "Integrate Apple Music playback, catalog search, and Now Playing metadata using MusicKit and MediaPlayer. Use when adding music search, Apple Music subscription flows, queue management, playback controls, remote command handling, or Now Playing info to iOS apps."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# MusicKit
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: natural-language
|
|
3
3
|
description: "Tokenize, tag, and analyze natural language text using Apple's NaturalLanguage framework and translate between languages with the Translation framework. Use when adding language identification, sentiment analysis, named entity recognition, part-of-speech tagging, text embeddings, or in-app translation to iOS/macOS/visionOS apps."
|
|
4
|
+
metadata:
|
|
5
|
+
source: "dpearson2699/swift-ios-skills (PolyForm Perimeter 1.0.0)"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# NaturalLanguage + Translation
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: nextjs-app-router
|
|
3
3
|
description: "Next.js 15+ App Router: Server/Client Components, Server Actions, data fetching, layouts, middleware, ISR/SSG/SSR, and routing patterns. Use when building or reviewing App Router work: Server Components, Server Actions, data fetching, layouts."
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
tags: [nextjs, react, frontend, ssr, app-router, full-stack]
|
|
6
|
+
version: "2025.1"
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Next.js 15+ App Router
|
|
@@ -1,34 +1,104 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: nodejs-backend-patterns
|
|
3
|
-
description: "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
description: "Node.js 22/24 services in ESM: structure, validated config, error mapping, graceful shutdown, AsyncLocalStorage, streams, queues, node:test. Use when building or reviewing a Node.js backend."
|
|
4
|
+
metadata:
|
|
5
|
+
risk: safe
|
|
6
|
+
source: multi-agent-pipeline
|
|
7
|
+
date_added: "2026-09-25"
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Node.js Backend Patterns
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
A Node service fails in a few characteristic ways: one blocking call stalls every
|
|
13
|
+
request, a forgotten `await` loses an error, a deploy kills requests mid-way,
|
|
14
|
+
or a missing environment variable surfaces as `undefined` three layers deep at
|
|
15
|
+
2 a.m. The patterns below exist to make those failures impossible or loud.
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
Assumes Node 22 or 24 LTS and ES modules. Type-level guidance lives in
|
|
18
|
+
`typescript-patterns`; schema and query work in `database-patterns`; test
|
|
19
|
+
strategy beyond the runner in `testing-backend`.
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
- Creating microservices with Node.js
|
|
17
|
-
- Implementing authentication and authorization
|
|
18
|
-
- Designing scalable backend architectures
|
|
19
|
-
- Setting up middleware and error handling
|
|
20
|
-
- Integrating databases (SQL and NoSQL)
|
|
21
|
-
- Building real-time applications with WebSockets
|
|
22
|
-
- Implementing background job processing
|
|
21
|
+
## 1. Core rules
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
Load `references/runtime-patterns.md` for the full code. The rules it implements:
|
|
25
24
|
|
|
26
|
-
-
|
|
27
|
-
|
|
25
|
+
- **Project shape**: group by feature, keep HTTP at the edge, and build the
|
|
26
|
+
server from a side-effect-free `buildApp(config, deps)` factory; `main.ts`
|
|
27
|
+
only loads config, builds, listens and handles signals.
|
|
28
|
+
- **Configuration**: parse `process.env` once with a schema (zod), freeze the
|
|
29
|
+
result, exit on invalid input, and pass `config` down; no `process.env` reads
|
|
30
|
+
elsewhere and no committed `.env` secrets.
|
|
31
|
+
- **Errors**: expected failures throw a typed `AppError` (stable code, HTTP
|
|
32
|
+
status); unexpected ones reach one error handler that returns RFC 9457 problem
|
|
33
|
+
details without leaking internals. Crash on `uncaughtException` and
|
|
34
|
+
`unhandledRejection` and let the orchestrator restart. Lint with
|
|
35
|
+
`no-floating-promises` and `no-misused-promises`.
|
|
36
|
+
- **Graceful shutdown**: on `SIGTERM`, fail readiness, stop accepting work,
|
|
37
|
+
finish in-progress requests and jobs, close pools, exit within a bounded
|
|
38
|
+
grace period. Liveness stays cheap and never touches dependencies.
|
|
39
|
+
- **Request context**: `AsyncLocalStorage` carries request id and principal for
|
|
40
|
+
logging and tracing; business inputs stay explicit parameters.
|
|
41
|
+
- **Timeouts**: every outbound call gets `AbortSignal.timeout` (combined with
|
|
42
|
+
the request's signal via `AbortSignal.any`); set statement, pool-acquire and
|
|
43
|
+
server timeouts.
|
|
44
|
+
- **Streams**: stream large payloads through `stream/promises` `pipeline`,
|
|
45
|
+
which propagates errors and destroys every stage; avoid manual `.pipe()`.
|
|
28
46
|
|
|
29
|
-
##
|
|
47
|
+
## 2. Keep the event loop free
|
|
30
48
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- Provide actionable steps and verification.
|
|
49
|
+
One thread runs all JavaScript. Anything CPU-heavy or synchronous blocks every
|
|
50
|
+
request.
|
|
34
51
|
|
|
52
|
+
- Never use `*Sync` fs or crypto calls in request paths.
|
|
53
|
+
- Large `JSON.parse`/`JSON.stringify`, image processing, PDF rendering,
|
|
54
|
+
compression of big payloads, and bcrypt/argon2 with high cost go to worker
|
|
55
|
+
threads (`node:worker_threads`, or a pool like `piscina`) or a separate job.
|
|
56
|
+
- Monitor loop delay with `perf_hooks.monitorEventLoopDelay()` and export it as
|
|
57
|
+
a metric; a p99 above ~100 ms means something is blocking.
|
|
58
|
+
|
|
59
|
+
## 3. Background work
|
|
60
|
+
|
|
61
|
+
- Anything that can fail independently of the response (emails, webhooks,
|
|
62
|
+
thumbnails, third-party sync) goes on a durable queue: BullMQ on Redis,
|
|
63
|
+
pg-boss on Postgres, or a cloud queue (SQS, Pub/Sub).
|
|
64
|
+
- Jobs must be idempotent and carry an id; queues deliver at least once.
|
|
65
|
+
- Configure retries with exponential backoff and a dead-letter destination.
|
|
66
|
+
- Write the domain change and the "job to enqueue" record in one transaction
|
|
67
|
+
(outbox pattern) when losing the job would be a bug.
|
|
68
|
+
- Run workers as a separate process type from the HTTP server so they scale and
|
|
69
|
+
deploy independently.
|
|
70
|
+
|
|
71
|
+
## 4. Testing and framework choice
|
|
72
|
+
|
|
73
|
+
Tests build the app from `buildApp(config, fakeDeps())` and call it in memory
|
|
74
|
+
(`app.inject()` on Fastify, `supertest` on Express) with the built-in
|
|
75
|
+
`node:test` runner. Worked examples, runner flags and a comparison of Fastify,
|
|
76
|
+
Express 5, NestJS and Hono, plus logging and observability defaults (pino,
|
|
77
|
+
redaction, OpenTelemetry), are in `references/testing-and-frameworks.md`.
|
|
78
|
+
|
|
79
|
+
## Review checklist
|
|
80
|
+
|
|
81
|
+
- [ ] Config parsed and validated once at startup; no scattered `process.env`.
|
|
82
|
+
- [ ] No floating promises; one central error handler returning problem details.
|
|
83
|
+
- [ ] `SIGTERM` drains requests, jobs and pools within a bounded grace period.
|
|
84
|
+
- [ ] Readiness and liveness are separate; liveness does not touch dependencies.
|
|
85
|
+
- [ ] Every outbound call and query has a timeout.
|
|
86
|
+
- [ ] No synchronous or CPU-heavy work on request paths.
|
|
87
|
+
- [ ] Large payloads stream through `pipeline`.
|
|
88
|
+
- [ ] Side effects that may fail run as idempotent queued jobs.
|
|
89
|
+
- [ ] Logs are structured, correlated by request id, and redact secrets.
|
|
90
|
+
- [ ] Tests build the app from a factory with injected dependencies.
|
|
91
|
+
|
|
92
|
+
## References
|
|
93
|
+
|
|
94
|
+
- `references/runtime-patterns.md`: layout, config, errors, shutdown, request context, timeouts and streams in full.
|
|
95
|
+
- `references/testing-and-frameworks.md`: `node:test` examples, framework comparison, logging and OpenTelemetry defaults.
|
|
96
|
+
|
|
97
|
+
## Related skills
|
|
98
|
+
|
|
99
|
+
- `api-patterns`, `rest-api-design`: the contract this service implements.
|
|
100
|
+
- `api-security-best-practices`: authentication, authorization, rate limits.
|
|
101
|
+
- `typescript-patterns`: types, Zod, strict mode.
|
|
102
|
+
- `database-patterns`: schema, migrations, query tuning.
|
|
103
|
+
- `testing-backend`: test pyramid and fixtures.
|
|
104
|
+
- `docker-expert`, `observability-engineer`: packaging and running it.
|