@mmerterden/multi-agent-pipeline 20.34.0 → 20.35.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 +55 -1
- package/README.md +1 -0
- package/docs/facts.json +2 -2
- package/install/catalog-history.json +1 -1
- package/install/claude.mjs +16 -1
- package/install/templates/claude-hooks.json +23 -1
- package/manifest.json +324 -293
- package/package.json +1 -1
- package/pipeline/agents/bulk-reader.md +3 -0
- package/pipeline/commands/multi-agent/channels/SKILL.md +1 -1
- package/pipeline/commands/multi-agent/office-on/SKILL.md +7 -3
- package/pipeline/commands/multi-agent/office-status/SKILL.md +3 -2
- package/pipeline/contract/CHANGELOG.md +9 -0
- package/pipeline/contract/README.md +1 -0
- package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
- package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
- package/pipeline/contract/fixtures/error-unsigned.json +1 -1
- package/pipeline/contract/manifest.json +14 -1
- package/pipeline/contract/types/index.d.ts +24 -2
- package/pipeline/lib/json-file-lock.mjs +61 -15
- package/pipeline/lib/office-remote.mjs +228 -0
- package/pipeline/lib/qr-code.mjs +360 -0
- package/pipeline/lib/repo-hygiene.sh +1 -0
- package/pipeline/lib/run-completion.mjs +17 -0
- package/pipeline/multi-agent-refs/channels/issue-comment.md +1 -1
- package/pipeline/multi-agent-refs/features/office-remote-protocol.md +166 -0
- package/pipeline/multi-agent-refs/features/office-threat-model.md +1 -1
- package/pipeline/multi-agent-refs/features/scope-check.md +16 -1
- package/pipeline/multi-agent-refs/features/verify-by-test.md +10 -0
- package/pipeline/multi-agent-refs/keychain.md +7 -0
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +6 -2
- package/pipeline/multi-agent-refs/phases/phase-1-plan.md +4 -6
- package/pipeline/multi-agent-refs/phases/phase-2-dev.md +9 -12
- package/pipeline/multi-agent-refs/phases/phase-3-review.md +9 -8
- package/pipeline/multi-agent-refs/phases/phase-4-commit.md +1 -4
- package/pipeline/multi-agent-refs/rules.md +3 -2
- package/pipeline/multi-agent-refs/tracker-contract.md +1 -1
- package/pipeline/office/NOTICE.md +4 -1
- package/pipeline/office/assets/char_12.png +0 -0
- package/pipeline/office/assets/char_13.png +0 -0
- package/pipeline/office/assets/char_14.png +0 -0
- package/pipeline/office/assets/char_15.png +0 -0
- package/pipeline/office/assets/char_16.png +0 -0
- package/pipeline/office/assets/char_17.png +0 -0
- package/pipeline/office/assets/char_18.png +0 -0
- package/pipeline/office/assets/char_19.png +0 -0
- package/pipeline/office/assets/char_20.png +0 -0
- package/pipeline/office/assets/char_21.png +0 -0
- package/pipeline/office/assets/char_22.png +0 -0
- package/pipeline/office/assets/char_23.png +0 -0
- package/pipeline/office/assets/char_24.png +0 -0
- package/pipeline/office/assets/char_25.png +0 -0
- package/pipeline/office/assets/char_26.png +0 -0
- package/pipeline/office/assets/char_27.png +0 -0
- package/pipeline/office/assets/char_28.png +0 -0
- package/pipeline/office/assets/char_29.png +0 -0
- package/pipeline/office/assets/char_30.png +0 -0
- package/pipeline/office/index.html +293 -49
- package/pipeline/schemas/agent-state.schema.json +18 -0
- package/pipeline/schemas/planning-output.schema.json +18 -0
- package/pipeline/schemas/pr-reach.schema.json +55 -0
- package/pipeline/schemas/prefs.schema.json +13 -7
- package/pipeline/schemas/triage-output.schema.json +12 -1
- package/pipeline/schemas/unattended-policy.json +2 -1
- package/pipeline/scripts/_guard_rules.py +449 -1
- package/pipeline/scripts/_test-gaming.mjs +36 -0
- package/pipeline/scripts/agent-guard.py +79 -19
- package/pipeline/scripts/anonymize-findings.mjs +99 -0
- package/pipeline/scripts/answer-check.mjs +113 -0
- package/pipeline/scripts/answer-check.sh +20 -0
- package/pipeline/scripts/autopilot-publish.mjs +9 -2
- package/pipeline/scripts/contract-server.mjs +35 -1
- package/pipeline/scripts/gate-ledger.mjs +144 -21
- package/pipeline/scripts/office-build.mjs +276 -5
- package/pipeline/scripts/office-control.mjs +70 -10
- package/pipeline/scripts/office-pair.mjs +407 -0
- package/pipeline/scripts/office-remote-client.mjs +463 -0
- package/pipeline/scripts/phase-tracker.sh +8 -0
- package/pipeline/scripts/phase0-exit-gate.mjs +40 -37
- package/pipeline/scripts/phone-devices.mjs +9 -1
- package/pipeline/scripts/pre-commit-check.sh +28 -2
- package/pipeline/scripts/pre-push-check.sh +6 -12
- package/pipeline/scripts/rework-base.mjs +87 -0
- package/pipeline/scripts/run-commit-check.mjs +104 -0
- package/pipeline/scripts/run-scope-guard.mjs +58 -3
- package/pipeline/scripts/run-scope-guard.sh +13 -1
- package/pipeline/scripts/scope-check-gate.mjs +70 -6
- package/pipeline/scripts/task-mirror.mjs +106 -15
- package/pipeline/scripts/task-mirror.sh +3 -2
- package/pipeline/scripts/test-stability-gate.mjs +112 -0
- package/pipeline/scripts/update-check.sh +7 -1
- package/pipeline/scripts/update-issue-progress.sh +73 -8
- package/pipeline/scripts/validate-planning.mjs +105 -1
- package/pipeline/scripts/validate-triage.mjs +42 -2
- package/pipeline/scripts/work-items.mjs +119 -1
- package/pipeline/scripts/worktree-prepare-all.mjs +200 -0
- package/pipeline/scripts/worktree-prepare.sh +40 -4
- package/pipeline/scripts/write-state.mjs +67 -24
- package/pipeline/skills/.skill-manifest.json +5 -5
- package/pipeline/skills/shared/core/google-play-compliance/SKILL.md +5 -5
- package/pipeline/skills/shared/core/google-play-compliance/references/rules.yml +1 -1
- package/pipeline/skills/shared/core/multi-agent-channels/SKILL.md +1 -1
- package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +2 -2
- package/pipeline/skills/shared/external/alarmkit/references/alarmkit-patterns.md +14 -0
- package/pipeline/skills/shared/external/android-architecture/references/patterns.md +6 -0
- package/pipeline/skills/shared/external/android-build-quality-gates/references/patterns.md +10 -0
- package/pipeline/skills/shared/external/android-datastore/references/patterns.md +11 -0
- package/pipeline/skills/shared/external/android-design-tokens-codegen/references/patterns.md +8 -0
- package/pipeline/skills/shared/external/android-jetpack-compose-expert/references/patterns.md +6 -0
- package/pipeline/skills/shared/external/android-mvi-viewmodel/references/patterns.md +10 -0
- package/pipeline/skills/shared/external/android-performance/references/patterns.md +13 -0
- package/pipeline/skills/shared/external/android-security/references/patterns.md +16 -0
- package/pipeline/skills/shared/external/api-patterns/references/contract-details.md +9 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/abuse-controls.md +12 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/identity-and-access.md +13 -0
- package/pipeline/skills/shared/external/api-security-best-practices/references/request-handling.md +12 -0
- package/pipeline/skills/shared/external/app-clips/references/data-handoff-notifications-location.md +9 -0
- package/pipeline/skills/shared/external/app-clips/references/routing-and-experiences.md +8 -0
- package/pipeline/skills/shared/external/app-clips/references/size-capabilities-and-promotion.md +10 -0
- package/pipeline/skills/shared/external/app-intents/references/appintents-advanced.md +21 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/keyword-research-methodology.md +9 -0
- package/pipeline/skills/shared/external/app-store-optimization/references/product-page-variants.md +7 -0
- package/pipeline/skills/shared/external/app-store-review/SKILL.md +2 -2
- package/pipeline/skills/shared/external/app-store-review/references/privacy-manifest.md +10 -0
- package/pipeline/skills/shared/external/app-store-review/references/review-checklists.md +10 -1
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-conversion.md +22 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/coreml-optimization.md +17 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/foundation-models.md +22 -0
- package/pipeline/skills/shared/external/apple-on-device-ai/references/mlx-swift.md +17 -0
- package/pipeline/skills/shared/external/authentication/references/keychain-biometric.md +9 -0
- package/pipeline/skills/shared/external/authentication/references/passkeys.md +11 -0
- package/pipeline/skills/shared/external/avkit/references/avkit-patterns.md +13 -0
- package/pipeline/skills/shared/external/background-processing/references/background-task-patterns.md +9 -0
- package/pipeline/skills/shared/external/callkit-voip/references/callkit-patterns.md +10 -0
- package/pipeline/skills/shared/external/cloudkit-sync/references/cloudkit-patterns.md +15 -0
- package/pipeline/skills/shared/external/compose-components/references/patterns.md +7 -0
- package/pipeline/skills/shared/external/compose-navigation/references/patterns.md +7 -0
- package/pipeline/skills/shared/external/compose-testing/references/patterns.md +15 -0
- package/pipeline/skills/shared/external/contacts-framework/references/contacts-patterns.md +9 -0
- package/pipeline/skills/shared/external/core-bluetooth/references/ble-patterns.md +11 -0
- package/pipeline/skills/shared/external/core-motion/references/motion-patterns.md +10 -0
- package/pipeline/skills/shared/external/core-nfc/references/nfc-patterns.md +13 -0
- package/pipeline/skills/shared/external/coreml/references/coreml-swift-integration.md +20 -0
- package/pipeline/skills/shared/external/cryptokit/references/cryptokit-patterns.md +16 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/instruments-guide.md +16 -0
- package/pipeline/skills/shared/external/debugging-instruments/references/lldb-patterns.md +14 -0
- package/pipeline/skills/shared/external/device-integrity/references/device-integrity-patterns.md +13 -0
- package/pipeline/skills/shared/external/energykit/references/energykit-patterns.md +10 -0
- package/pipeline/skills/shared/external/eventkit-calendar/references/eventkit-patterns.md +10 -0
- package/pipeline/skills/shared/external/fastapi-pro/references/app-structure.md +10 -0
- package/pipeline/skills/shared/external/gradle-kotlin-dsl/references/patterns.md +17 -0
- package/pipeline/skills/shared/external/healthkit/references/healthkit-patterns.md +12 -0
- package/pipeline/skills/shared/external/hig-app-icons/references/icon-workflow.md +10 -0
- package/pipeline/skills/shared/external/hig-components-content/references/content-views.md +10 -0
- package/pipeline/skills/shared/external/hig-components-layout/references/bars-and-tabs.md +11 -0
- package/pipeline/skills/shared/external/hig-foundations/references/foundations-detail.md +13 -0
- package/pipeline/skills/shared/external/hig-foundations/references/type-color-spacing.md +13 -0
- package/pipeline/skills/shared/external/hig-patterns/references/onboarding-and-states.md +11 -0
- package/pipeline/skills/shared/external/hig-platforms/references/ipad-layout.md +12 -0
- package/pipeline/skills/shared/external/hig-technologies/references/technologies.md +16 -0
- package/pipeline/skills/shared/external/homekit-matter/references/matter-commissioning.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/a11y-patterns.md +18 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/large-content-and-appearance.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/media-accessibility.md +9 -0
- package/pipeline/skills/shared/external/ios-accessibility/references/nutrition-labels.md +7 -0
- package/pipeline/skills/shared/external/ios-coding-standard/references/STANDARD.md +13 -0
- package/pipeline/skills/shared/external/ios-design-review/references/appearance-matrix.md +9 -0
- package/pipeline/skills/shared/external/ios-design-review/references/checklist.md +15 -0
- package/pipeline/skills/shared/external/ios-haptics/references/core-haptics.md +11 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/api-map.md +11 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/fixed-assumptions.md +15 -0
- package/pipeline/skills/shared/external/ios-iphone-duo/references/poses-and-panes.md +11 -0
- package/pipeline/skills/shared/external/ios-localization/references/formatstyle-locale.md +18 -0
- package/pipeline/skills/shared/external/ios-localization/references/string-catalogs.md +19 -0
- package/pipeline/skills/shared/external/ios-networking/references/background-websocket.md +15 -0
- package/pipeline/skills/shared/external/ios-networking/references/file-storage-patterns.md +7 -0
- package/pipeline/skills/shared/external/ios-networking/references/lightweight-clients.md +8 -0
- package/pipeline/skills/shared/external/ios-networking/references/network-framework.md +12 -0
- package/pipeline/skills/shared/external/ios-networking/references/urlsession-patterns.md +17 -0
- package/pipeline/skills/shared/external/ios-security/references/app-review-guidelines.md +8 -0
- package/pipeline/skills/shared/external/ios-security/references/cryptokit-advanced.md +14 -0
- package/pipeline/skills/shared/external/ios-security/references/file-storage-patterns.md +8 -0
- package/pipeline/skills/shared/external/ios-security/references/privacy-manifest.md +9 -0
- package/pipeline/skills/shared/external/ios-sf-symbols/references/effects-and-custom-symbols.md +9 -0
- package/pipeline/skills/shared/external/ios-simulator/references/simctl-commands.md +13 -0
- package/pipeline/skills/shared/external/kotlin-coroutines-expert/references/patterns.md +8 -0
- package/pipeline/skills/shared/external/live-activities/references/activitykit-patterns.md +21 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/format-and-output.md +9 -0
- package/pipeline/skills/shared/external/localization-reuse-map/reference/sources-and-recipes.md +12 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-corelocation-patterns.md +16 -0
- package/pipeline/skills/shared/external/mapkit-location/references/mapkit-patterns.md +21 -0
- package/pipeline/skills/shared/external/metrickit-diagnostics/references/metrickit-patterns.md +10 -0
- package/pipeline/skills/shared/external/musickit-audio/references/musickit-patterns.md +9 -0
- package/pipeline/skills/shared/external/natural-language/references/translation-patterns.md +12 -0
- package/pipeline/skills/shared/external/nodejs-backend-patterns/references/runtime-patterns.md +11 -0
- package/pipeline/skills/shared/external/passkit-wallet/references/wallet-passes.md +11 -0
- package/pipeline/skills/shared/external/pdfkit/references/pdfkit-patterns.md +18 -0
- package/pipeline/skills/shared/external/pencilkit-drawing/references/pencilkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/permissionkit/references/permissionkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/av-playback.md +15 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/camera-capture.md +14 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/image-loading-caching.md +14 -0
- package/pipeline/skills/shared/external/photos-camera-media/references/photokit-patterns.md +14 -0
- package/pipeline/skills/shared/external/push-notifications/references/notification-patterns.md +14 -0
- package/pipeline/skills/shared/external/push-notifications/references/rich-notifications.md +10 -0
- package/pipeline/skills/shared/external/realitykit-ar/references/realitykit-patterns.md +12 -0
- package/pipeline/skills/shared/external/retrofit-networking/references/patterns.md +14 -0
- package/pipeline/skills/shared/external/room-database/references/patterns.md +16 -0
- package/pipeline/skills/shared/external/shareplay-activities/references/shareplay-patterns.md +10 -0
- package/pipeline/skills/shared/external/speech-recognition/references/speechanalyzer-patterns.md +10 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/spm-build-analysis/references/spm-analysis-checks.md +19 -0
- package/pipeline/skills/shared/external/storekit/references/core-patterns.md +13 -0
- package/pipeline/skills/shared/external/storekit/references/storekit-advanced.md +31 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/argument-labels-and-parameters.md +8 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/conventions-and-special-rules.md +9 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/naming-and-clarity.md +10 -0
- package/pipeline/skills/shared/external/swift-api-design-guidelines/references/side-effects-and-mutating-pairs.md +8 -0
- package/pipeline/skills/shared/external/swift-charts/references/charts-patterns.md +24 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/bridging-interop.md +8 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/concurrency-patterns.md +14 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/swiftui-concurrency.md +12 -0
- package/pipeline/skills/shared/external/swift-concurrency/references/synchronization-primitives.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-expert/references/swift-6-2-concurrency.md +8 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/actors.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/cancellation.md +7 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/interop.md +10 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/new-features.md +11 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/structured.md +9 -0
- package/pipeline/skills/shared/external/swift-concurrency-pro/references/testing.md +13 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-attributes-interop.md +7 -0
- package/pipeline/skills/shared/external/swift-language/references/swift-patterns-extended.md +14 -0
- package/pipeline/skills/shared/external/swift-security/references/biometric-authentication.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/certificate-trust.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/common-anti-patterns.md +19 -0
- package/pipeline/skills/shared/external/swift-security/references/compliance-owasp-mapping.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/credential-storage-patterns.md +19 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-public-key.md +18 -0
- package/pipeline/skills/shared/external/swift-security/references/cryptokit-symmetric.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-access-control.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-fundamentals.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-item-classes.md +17 -0
- package/pipeline/skills/shared/external/swift-security/references/keychain-sharing.md +18 -0
- package/pipeline/skills/shared/external/swift-security/references/migration-legacy-stores.md +21 -0
- package/pipeline/skills/shared/external/swift-security/references/secure-enclave.md +16 -0
- package/pipeline/skills/shared/external/swift-security/references/testing-security-code.md +16 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-advanced.md +9 -0
- package/pipeline/skills/shared/external/swift-testing/references/testing-patterns.md +24 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/async-tests.md +9 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/new-features.md +11 -0
- package/pipeline/skills/shared/external/swift-testing-pro/references/writing-better-tests.md +13 -0
- package/pipeline/skills/shared/external/swiftdata/references/core-data-coexistence.md +8 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-advanced.md +17 -0
- package/pipeline/skills/shared/external/swiftdata/references/swiftdata-queries.md +12 -0
- package/pipeline/skills/shared/external/swiftlint/references/adoption-and-configuration.md +11 -0
- package/pipeline/skills/shared/external/swiftlint/references/custom-rules-and-analyze.md +7 -0
- package/pipeline/skills/shared/external/swiftlint/references/plugins-run-scripts-and-integrations.md +13 -0
- package/pipeline/skills/shared/external/swiftlint/references/rule-reference.md +24 -0
- package/pipeline/skills/shared/external/swiftlint/references/rules-suppressions-and-baselines.md +12 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/animation-advanced.md +15 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/core-animation-bridge.md +15 -0
- package/pipeline/skills/shared/external/swiftui-animation/references/scroll-effects.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/accessibility-patterns.md +11 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-advanced.md +7 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-basics.md +13 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/animation-transitions.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts-accessibility.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/charts.md +17 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/image-optimization.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/latest-apis.md +10 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/layout-best-practices.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/list-patterns.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-scenes.md +13 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-views.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/macos-window-styling.md +12 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/performance-patterns.md +7 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/scroll-patterns.md +9 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/sheet-navigation-patterns.md +10 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/state-management.md +18 -0
- package/pipeline/skills/shared/external/swiftui-expert-skill/references/view-structure.md +16 -0
- package/pipeline/skills/shared/external/swiftui-gestures/references/gesture-patterns.md +11 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/form.md +8 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/grids.md +14 -0
- package/pipeline/skills/shared/external/swiftui-layout-components/references/scrollview.md +9 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/liquid-glass.md +22 -0
- package/pipeline/skills/shared/external/swiftui-liquid-glass/references/uikit-glass.md +14 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/deeplinks.md +10 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/navigationstack.md +10 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/sheets.md +13 -0
- package/pipeline/skills/shared/external/swiftui-navigation/references/tabview.md +10 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/architecture-patterns.md +14 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/deprecated-migration.md +30 -0
- package/pipeline/skills/shared/external/swiftui-patterns/references/platform-and-sharing.md +16 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +11 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +11 -0
- package/pipeline/skills/shared/external/swiftui-performance/references/understanding-hangs-in-your-app.md +10 -0
- package/pipeline/skills/shared/external/swiftui-performance-audit/references/code-smells.md +8 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/app-wiring.md +12 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/menu-bar.md +10 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/navigationstack.md +11 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/scroll-reveal.md +12 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/sheets.md +14 -0
- package/pipeline/skills/shared/external/swiftui-ui-patterns/references/tabview.md +10 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/hosting-migration.md +10 -0
- package/pipeline/skills/shared/external/swiftui-uikit-interop/references/representable-recipes.md +13 -0
- package/pipeline/skills/shared/external/swiftui-view-refactor/references/mv-patterns.md +12 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/loading-and-observation.md +8 -0
- package/pipeline/skills/shared/external/swiftui-webkit/references/navigation-and-javascript.md +8 -0
- package/pipeline/skills/shared/external/tipkit/references/tipkit-patterns.md +14 -0
- package/pipeline/skills/shared/external/vision-framework/references/vision-requests.md +17 -0
- package/pipeline/skills/shared/external/vision-framework/references/visionkit-scanner.md +11 -0
- package/pipeline/skills/shared/external/weatherkit/references/weatherkit-patterns.md +11 -0
- package/pipeline/skills/shared/external/widgetkit/references/widgetkit-advanced.md +27 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-build-fixer/references/fix-patterns.md +7 -0
- package/pipeline/skills/shared/external/xcode-build-orchestrator/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/xcode-compilation-analyzer/references/code-compilation-checks.md +8 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-optimization-sources.md +14 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/build-settings-best-practices.md +9 -0
- package/pipeline/skills/shared/external/xcode-project-analyzer/references/project-audit-checks.md +13 -0
|
@@ -526,14 +526,18 @@ scan, `shadow-git.sh` excludes, and the shared walkers (`extract-conventions.sh`
|
|
|
526
526
|
|
|
527
527
|
**v2.1.0+ Multi-Repo Worktree Setup**:
|
|
528
528
|
|
|
529
|
-
When `state.projects[].length > 1`,
|
|
529
|
+
When `state.projects[].length > 1`, steps 2-3 run **serially per repo** in one call; `{repos.json}` is `[{project, path, branch, base, name, email}]` with `path` = `"$proj/.worktrees/$BRANCH_DIR/"`:
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
node "$HOME/.claude/scripts/worktree-prepare-all.mjs" --repos "{repos.json}"
|
|
533
|
+
```
|
|
530
534
|
|
|
531
535
|
State file in multi-repo mode:
|
|
532
536
|
- Single shared `agent-state.json` lives at `${LOGS_ROOT:-$HOME/.claude/logs/multi-agent}/{first-project}/{task-id}/agent-state.json` (anchored on the first repo for back-compat with `multi-agent log`/`status` commands)
|
|
533
537
|
- Every write to it, creation included, goes through `node $HOME/.claude/scripts/write-state.mjs` - the required mechanism in `operations.md` "Writing `agent-state.json`", and the race a per-repo read-modify-write loses `projects[]` entries to.
|
|
534
538
|
- `state.projects[]` holds per-repo `{name, root, worktreePath, branch, baseBranch, identity, platform, baseFetchStatus, commit, pr, pushAttempts, buildStatus}` - see `agent-state.schema.json`
|
|
535
539
|
- Scalar fields (`project`, `projectRoot`, `worktreePath`, `branch`, `baseBranch`, `identity`) mirror `projects[0]` so legacy phases that read scalars keep working
|
|
536
|
-
- Atomicity:
|
|
540
|
+
- Atomicity: on exit 1 it is after rolling back what it created (worktrees are removed without `--force`; branch rules in the script header). Report `failed.error` and `kept[]`, write no `projects[]`, stop.
|
|
537
541
|
|
|
538
542
|
Single-repo mode (`projects.length === 1` or scalar-only) uses the legacy single-worktree path verbatim - no behavior change for existing tasks.
|
|
539
543
|
|
|
@@ -325,14 +325,12 @@ Create tasks using TaskCreate with imperative subject, description (what/which f
|
|
|
325
325
|
|
|
326
326
|
##### Analysis citation requirement (every UI task)
|
|
327
327
|
|
|
328
|
-
Every UI-touching task
|
|
328
|
+
Every UI-touching task cites, as its `design: {component, mapping}`, the analysis Section 6 (Bileşen Envanteri) row it implements (one task per row when one component covers several variants) and the canonical name from it:
|
|
329
329
|
|
|
330
|
-
-
|
|
331
|
-
-
|
|
332
|
-
- **Code Connect mapping present**: take the component name verbatim from the matching repo `*.figma.swift` / `*.figma.kt` row referenced by analysis Section 6.
|
|
333
|
-
- **Mapping absent**: cite "best-fit pending design review" and add a Risk row to the plan. The task description MUST also flag that Phase 3 will gate it as `review_blocking`.
|
|
330
|
+
- **Code Connect mapping present** (`code-connect`): the name verbatim from the repo `*.figma.swift` / `*.figma.kt` row Section 6 references.
|
|
331
|
+
- **Mapping absent** (`best-fit`): "best-fit pending design review", a Risk row in the plan, and a task note that Phase 3 gates it `review_blocking`.
|
|
334
332
|
|
|
335
|
-
|
|
333
|
+
`validate-planning.mjs --spec` fails a name that is not a Section 6 row, a mapping its Existing column contradicts, and a view-file task with no `design`; the user then re-runs `/multi-agent:analysis` to extend Section 6 or rescopes the task to a non-UI change. Direct Figma fetches in Phase 1 are forbidden (Locked decision 30).
|
|
336
334
|
|
|
337
335
|
Example task graph:
|
|
338
336
|
|
|
@@ -80,12 +80,13 @@ Phase 2 runs twice in the pipeline lifetime: first for initial development, then
|
|
|
80
80
|
When re-entering from Phase 3:
|
|
81
81
|
|
|
82
82
|
1. Read `state.reviewIterations[-1]` - the latest iteration's **accepted** list.
|
|
83
|
+
Before the first edit, record the round's base (`features/scope-check.md`, "Rework pass").
|
|
83
84
|
2. For each `accepted` finding where `severity === "blocking"` or `severity === "important"`:
|
|
84
85
|
- Treat it exactly like a Phase 1 plan task (TDD cycle, build verify).
|
|
85
86
|
- Quote the original `issue` + `fix` text in the task description so the dev agent has full context.
|
|
86
87
|
3. `accepted.suggestion` items are applied opportunistically (no TDD loop required) unless the user asked for suggestions to be treated strictly.
|
|
87
88
|
4. `deferred` items are NOT actioned in this re-entry - Phase 4 Step 0b lists them before the commit and the PR description carries them as follow-ups.
|
|
88
|
-
5. `rejected` items are never touched. Log their IDs + triage reasons for audit only.
|
|
89
|
+
5. `rejected` items are never touched. Log their IDs + triage reasons for audit only; Step 3.7 checks it.
|
|
89
90
|
6. After rework, increment `state.phases["2"].retryCount`; at `retryCount === 3` run `node $HOME/.claude/scripts/rework-rulings.mjs --triage "{worktreePath}/triage-output.json" --state "$STATE_FILE"`: blocking or security findings `escalate` (hard-kill, escalate to the user), the rest are `parked` as follow-ups and the run continues to Phase 4; exit 2 or 3 escalates. Do not loop indefinitely. When `prefs.global.autopilotCircuitBreaker.enabled` is true (default), record the hard-kill before escalating as `state.circuitBreaker = {tripped: true, trigger: 3, detail: "rework cycles exhausted", checkpoint: {phase: 3, step: "re-entry", iteration: <n>}, trippedAt, counters: {reworkCycles: <n>}}`: the rework-storm trigger; `autopilotCircuitBreaker.maxReworkCycles` (default 3) is bounded above by this cap.
|
|
90
91
|
7. When `state.reviewIterations[-1].delta` exists, `stillPresent[]` findings come first in the task list, quoted `STILL PRESENT after round N-1's fix`; repeating the previous attempt is the loop the circuit-breaker stops.
|
|
91
92
|
8. Before each rework dispatch, `rework-escalation.mjs` picks the rung; findings and the prior report go as files (`features/rework-escalation.md`).
|
|
@@ -103,16 +104,10 @@ $HOME/.claude/scripts/log-metric.sh "$TASK_ID" 2 rework.started \
|
|
|
103
104
|
|
|
104
105
|
For each task (respecting dependency order), on start and on end: `bash $HOME/.claude/scripts/phase-tracker.sh sub 2 <task_id> "<title>" in_progress|completed|failed`.
|
|
105
106
|
|
|
106
|
-
1. **Update task status: `in_progress` (required
|
|
107
|
-
-
|
|
108
|
-
- **
|
|
109
|
-
|
|
110
|
-
- GitHub Projects V2: `updateProjectV2ItemFieldValue` on the Status field (singleSelectOptionId)
|
|
111
|
-
- Internal state: `agent-state.json` → `phases["2"].status = "in_progress"`
|
|
112
|
-
- **Post-update verify** (catches silent VALIDATION errors from stale option IDs after board rebuilds):
|
|
113
|
-
- Re-read the Status field after mutation.
|
|
114
|
-
- If the value is NOT `In Progress` (Jira) / `In Develop` (Projects V2), re-fetch current option IDs and retry ONCE.
|
|
115
|
-
- If verify still fails after retry → log error, do NOT proceed to TDD. The mutation silently failed and continuing would leave the task mis-tracked.
|
|
107
|
+
1. **Update task status: `in_progress` (required, before any code)**: the board shows "Todo" until this runs.
|
|
108
|
+
- Jira: transition to "In Progress" via REST (operations.md "Confirmed writes"); Projects V2: `updateProjectV2ItemFieldValue` on Status; state: `phases["2"].status = "in_progress"`.
|
|
109
|
+
- **Verify**: re-read Status. Not `In Progress` / `In Develop` (stale option ids after a board rebuild) → re-fetch the ids, retry once; still wrong → log it and do NOT start TDD.
|
|
110
|
+
- **Record** `phases["2"].trackerStatus` (`agent-state.schema.json`); write-state will not leave Phase 2 of an attended tracked run while it is missing or `failed`.
|
|
116
111
|
2. **Multi-submodule awareness**: a task may span the submodules Phase 0 Step 7 detected (e.g. tokens in **common**, the component in **uicomponents**); that is expected.
|
|
117
112
|
3. **TDD cycle** (Launch Agent with `model: "sonnet"`) - gated by `state.testPolicy`: `tdd` = the loop below; `tests-after` = skip RED, author the same tests once green; `none` = author no tests (existing ones never weakened), report "tests not written - project policy" rather than a gap.
|
|
118
113
|
|
|
@@ -156,7 +151,7 @@ For each task (respecting dependency order), on start and on end: `bash $HOME/.c
|
|
|
156
151
|
**REFACTOR (if needed):**
|
|
157
152
|
- Only if duplication or naming is poor
|
|
158
153
|
- Re-run tests after refactor → still GREEN
|
|
159
|
-
- **Stability (required):** run every test added or changed in this diff `prefs.global.testStability.repeatCount` times (default 3; 1 disables) with the single-test invocation above. Disagreeing outcomes are not GREEN: log `test.flake_signal file=<f> passed=<k> of=<N>` and fix the test or the code first. Same rule on the Phase 3 rework re-entry. Keep each repeat's `.pipeline/repeat-<k>.junit.xml
|
|
154
|
+
- **Stability (required):** run every test added or changed in this diff `prefs.global.testStability.repeatCount` times (default 3; 1 disables) with the single-test invocation above. Disagreeing outcomes are not GREEN: log `test.flake_signal file=<f> passed=<k> of=<N>` and fix the test or the code first. Same rule on the Phase 3 rework re-entry. Keep each repeat's `.pipeline/repeat-<k>.junit.xml` and judge them with `test-stability-gate.mjs` (`features/verify-by-test.md`, "Repeat runs").
|
|
160
155
|
|
|
161
156
|
**Target resolution** (auto-detect once per project, cache in `agent-state.json`; ios resolves scheme + simulator, android resolves module + variant, backend/web need none):
|
|
162
157
|
ios (prefer the scheme matching the project name, then the first non-test scheme):
|
|
@@ -276,6 +271,8 @@ git -C "$WORKTREE" diff --name-only "origin/$BASE_BRANCH"...HEAD \
|
|
|
276
271
|
--repo "$WORKTREE" --patch-range "origin/$BASE_BRANCH...HEAD"
|
|
277
272
|
```
|
|
278
273
|
|
|
274
|
+
On a re-entry from Phase 3, also run the rejected-findings check (`features/scope-check.md`, "Rework pass").
|
|
275
|
+
|
|
279
276
|
Exit 1 lists `unjustified[]`: complete the record, re-run once. A second exit 1 logs `dev.scope_check=incomplete unjustified=<n>` and hands off; reviewers see it in `<scope-self-check>`. Progress line: ` → checking scope self-check ({n} files, {m} not done)`.
|
|
280
277
|
|
|
281
278
|
---
|
|
@@ -364,9 +364,9 @@ Exit 0 = valid. Exit 2 = contradiction (approved=true with blocking findings) -
|
|
|
364
364
|
|
|
365
365
|
**CRITICAL**: Reviewer findings are **raw signals**, not commands. Never auto-loop on every "blocking" tag - reviewers hallucinate, misread scope, or repeat each other. Run Fable triage (Opus on Copilot CLI) to evaluate merged findings against task scope.
|
|
366
366
|
|
|
367
|
-
Optional:
|
|
367
|
+
Optional: with `ai-analyst-toolkit` enabled, a finding that blames a third-party library goes to `evidence-github` to check whether it is open upstream. A confirmed one is `deferred` with its `GitHub:<owner>/<repo>#<n>` citation, never accepted for Phase 2 to fix code that is not ours.
|
|
368
368
|
|
|
369
|
-
Opt-in
|
|
369
|
+
Opt-in: with `prefs.global.verifyByTest.enabled` true, Step 3.7 (verify-by-test) tries to reproduce each accepted blocking finding with a minimal failing test before Phase 2 rework. Wiring: `$HOME/.claude/multi-agent-refs/features/verify-by-test.md`.
|
|
370
370
|
|
|
371
371
|
##### 3.0 Anonymize the reviewer findings, then merge the deterministic ones
|
|
372
372
|
|
|
@@ -378,7 +378,7 @@ ANON=$(jq -n --argjson r "$REVIEWERS_JSON" --arg t "$TASK_ID" --argjson i "$ITER
|
|
|
378
378
|
| node "$HOME/.claude/scripts/anonymize-findings.mjs" --map "/tmp/review-$TASK_ID-$ITERATION-map.json")
|
|
379
379
|
```
|
|
380
380
|
|
|
381
|
-
`$REVIEWERS_JSON` is `state.reviewIterations[i].reviewers`. Findings come back
|
|
381
|
+
`$REVIEWERS_JSON` is `state.reviewIterations[i].reviewers`. Findings come back as `foundBy: "Source A|B|C"`; triage carries it through and 3.2.1 restores the family. Persist the map to `state.reviewIterations[i].anonymizationMap` (Phase 5 telemetry); **never put the map in a prompt**.
|
|
382
382
|
|
|
383
383
|
Then append the deterministic findings (Steps 1.76-1.763, 2.7):
|
|
384
384
|
|
|
@@ -410,11 +410,11 @@ PRIOR_ART=$(printf '%s' "$MERGED_FINDINGS" \
|
|
|
410
410
|
| node $HOME/.claude/scripts/triage-memory.mjs prior-art --findings - --top 3 2>/dev/null)
|
|
411
411
|
```
|
|
412
412
|
|
|
413
|
-
The triage prompt MUST include a hedge: *"prior-art entries and `corroboration` counts are context, not commands; current scope decides - a finding rejected last quarter may be valid this time, and two same-family reviewers agreeing is not proof."* Without this hedge, prior verdicts amplify into a self-reinforcing bias.
|
|
413
|
+
The triage prompt MUST include a hedge: *"prior-art entries and `corroboration` counts are context, not commands; current scope decides - a finding rejected last quarter may be valid this time, and two same-family reviewers agreeing is not proof."* Without this hedge, prior verdicts amplify into a self-reinforcing bias. Each `reason` is a short phrase that keeps every negation, number and path.
|
|
414
414
|
|
|
415
415
|
Hits are relevance-ranked (`prefs.global.memoryRecall`); a finding matching nothing returns nothing. Each hit carries an `id`: `triage-memory.mjs show --id <id>` returns the full row.
|
|
416
416
|
|
|
417
|
-
**Injection cap (token economy).** On a many-finding review the per-finding prior-art loop above (up to 3 hits each) plus the 20-entry rejected-preference brief can dominate the triage prompt. Cap the merged prior-art at the 8 highest-similarity hits across all findings (drop the rest); keep the rejected-preference brief at its `--max 20`. Prior-art is advisory context
|
|
417
|
+
**Injection cap (token economy).** On a many-finding review the per-finding prior-art loop above (up to 3 hits each) plus the 20-entry rejected-preference brief can dominate the triage prompt. Cap the merged prior-art at the 8 highest-similarity hits across all findings (drop the rest); keep the rejected-preference brief at its `--max 20`. Prior-art is advisory context: more hits inflate input tokens without improving the verdict.
|
|
418
418
|
|
|
419
419
|
**Rejected-preference brief (on by default via `prefs.global.learningsLedger.injectIntoTriage`).** Inject the durable rejected-preference list so triage does not re-accept a suggestion the team already rejected on this repo:
|
|
420
420
|
|
|
@@ -465,7 +465,7 @@ Step 3 produces a single triage-output object conforming to `$HOME/.claude/schem
|
|
|
465
465
|
|
|
466
466
|
Return ONLY valid JSON conforming to $HOME/.claude/schemas/triage-output.schema.json:
|
|
467
467
|
{
|
|
468
|
-
"accepted": [{ "severity": "blocking|important|suggestion", "file": "...", "line": N, "issue": "...", "fix": "...", "
|
|
468
|
+
"accepted": [{ "severity": "blocking|important|suggestion", "file": "...", "line": N, "issue": "...", "fix": "...", "foundBy": "Source A" }],
|
|
469
469
|
"deferred": [{ "finding": {...}, "reason": "..." }],
|
|
470
470
|
"rejected": [{ "finding": {...}, "reason": "..." }],
|
|
471
471
|
"cannotVerify": [{ "requirement": "...", "resolution": "verified|finding|out-of-scope", "evidence": "file:line or reason" }], // one per reviewer row, omit when none
|
|
@@ -481,7 +481,8 @@ Run on the persisted file immediately after the triage agent returns, before act
|
|
|
481
481
|
Write it with the Write tool to `$TRIAGE_FILE` = `$WORKTREE/.pipeline/triage-round-<N>.json` (N = `jq '.reviewIterations | length' "$STATE_FILE"`), then:
|
|
482
482
|
|
|
483
483
|
```bash
|
|
484
|
-
node $HOME/.claude/scripts/validate-triage.mjs "$TRIAGE_FILE" --reviewers-dir "$WORKTREE/.pipeline" \
|
|
484
|
+
node $HOME/.claude/scripts/validate-triage.mjs "$TRIAGE_FILE" --reviewers-dir "$WORKTREE/.pipeline" --anonymized \
|
|
485
|
+
&& node $HOME/.claude/scripts/anonymize-findings.mjs --restore --map "/tmp/review-$TASK_ID-$ITERATION-map.json" --state "$STATE_FILE" --in-place "$TRIAGE_FILE" \
|
|
485
486
|
&& node $HOME/.claude/scripts/finding-fingerprint.mjs annotate --in-place "$TRIAGE_FILE" \
|
|
486
487
|
&& cp "$TRIAGE_FILE" "{worktreePath}/triage-output.json"
|
|
487
488
|
```
|
|
@@ -490,7 +491,7 @@ Progress line: ` → checking validator validate-triage`
|
|
|
490
491
|
|
|
491
492
|
An unsettled reviewer `cannotVerify[]` row is exit 1.
|
|
492
493
|
|
|
493
|
-
One file per round; `triage-output.json` is the latest copy every
|
|
494
|
+
One file per round; `triage-output.json` is the latest copy every reader expects. Step 3.7 rewrites `$TRIAGE_FILE`; repeat the `cp` after it.
|
|
494
495
|
|
|
495
496
|
| Exit | Meaning | Action |
|
|
496
497
|
| ----- | ---------------------------- | ------------------------------------------------- |
|
|
@@ -103,10 +103,7 @@ Branch **deterministically**, no implicit fallback. Read `agent-state.json` and
|
|
|
103
103
|
- option 2 - semantically "Yes, WIP checkout"; description: pause so the user can checkout the branch locally and poke around
|
|
104
104
|
- Default: option 1 (by index, not by label - the label is localized)
|
|
105
105
|
- If the user picks option 2 (WIP checkout): follow Phase 3 Steps 2-6. On `"fix:"` → Phase 2. On `"ok"` → resume Phase 4.
|
|
106
|
-
2. Commit confirm prompt (skip in autopilot).
|
|
107
|
-
- `question` in `outputLanguage` (semantic: "Commit now?")
|
|
108
|
-
- labels in `outputLanguage`, semantically "Commit" and "Pause and resume later"; branch on the option index, not on the rendered string
|
|
109
|
-
- No → Pause, user can `resume` later. Yes → continue:
|
|
106
|
+
2. Commit confirm prompt (skip in autopilot), in `outputLanguage`: "Commit now?" with "Commit" / "Pause and resume later", branched on the option index. No → pause (`resume` later). Yes → continue; where prompts are off, record it with `confirm-command.mjs --command '<the exact commit>'` (agent-guard asks on the run's commit).
|
|
110
107
|
3. If WIP commit exists from Phase 3 or Step 1: `git reset HEAD~1` to unstage, then re-commit properly
|
|
111
108
|
4. Stage changes: `git add` with specific files (NOT `git add -A` - avoid sensitive files, `.worktrees/`, agent files)
|
|
112
109
|
5. **Multi-submodule check**: If project has submodules (e.g. uicomponents + common):
|
|
@@ -84,6 +84,7 @@ This is the single source of truth. When a contributor or model is unsure where
|
|
|
84
84
|
- **Types**: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `style`, `perf`
|
|
85
85
|
- **Max first-line length**: 72 chars
|
|
86
86
|
- **Body** for "why", not "what"
|
|
87
|
+
- **Enforced** on Claude Code inside the run the session drives: agent-guard refuses a subject with no conventional type (after a repo profile's ticket prefix) or over 72 characters, and a PR, issue or Jira body with a literal `\n` or an HTML entity outside code.
|
|
87
88
|
- **Git author**: identity selected in Phase 0, from preferences file (not Keychain, not git global config)
|
|
88
89
|
|
|
89
90
|
## Branch Naming
|
|
@@ -188,9 +189,9 @@ Same rule applies to any future provider wrapper (e.g. `cloudflare-deploy.sh`, `
|
|
|
188
189
|
|
|
189
190
|
These rules govern when and how the pipeline asks the user, and when it must NOT ask.
|
|
190
191
|
|
|
191
|
-
- **No auto-commit.** Never run `git commit` without explicit user approval, even when build + review pass. The Phase 4 commit step pauses and asks ("commit message X, OK?"); only on `yes` does the commit run. Applies to checkpoint / WIP commits during Dev (Phase 3) and to the orchestrator's own state-save commits.
|
|
192
|
+
- **No auto-commit.** Never run `git commit` without explicit user approval, even when build + review pass. The Phase 4 commit step pauses and asks ("commit message X, OK?"); only on `yes` does the commit run. Applies to checkpoint / WIP commits during Dev (Phase 3) and to the orchestrator's own state-save commits. Enforced on Claude Code: agent-guard asks on a `git commit` from the session driving an attended run, and pre-commit-check refuses it without the run's build, test and (from Phase 4) review evidence.
|
|
192
193
|
- **No micro-confirmations for reversible local work.** Local edits, lint fixes, test additions, scaffold files, in-worktree rewrites - just do them. Ask only for irreversible or shared-state actions: `git push`, `git push --force`, tag, third-party POST (Confluence, Jira, Slack), publish, deletes spanning many files, branch deletion. The threshold is "can the user undo this in 30 seconds via Cmd+Z or `git restore`?" - if yes, do not ask.
|
|
193
|
-
- **Empty `AskUserQuestion` answer is not consent.** When the user submits without picking any option (empty answers map), do NOT silently apply the "Recommended" default. Re-ask the question, or proceed treating each item as unselected. Future-behavior preference questions are not preemptive - only ask when the answer changes what happens NOW.
|
|
194
|
+
- **Empty `AskUserQuestion` answer is not consent.** When the user submits without picking any option (empty answers map), do NOT silently apply the "Recommended" default. Re-ask the question, or proceed treating each item as unselected. On Claude Code the `answer-check.sh` PostToolUse hook names each unanswered question back to the model. Future-behavior preference questions are not preemptive - only ask when the answer changes what happens NOW.
|
|
194
195
|
- **Question phrasing in Plan Mode.** Don't reference "the plan" in `AskUserQuestion` text while in plan mode - the user cannot see the plan until `ExitPlanMode`. Use `ExitPlanMode` for approval; `AskUserQuestion` only for choosing between concrete options.
|
|
195
196
|
|
|
196
197
|
## Figma Access Tier (pipeline-wide, BLOCKING)
|
|
@@ -120,7 +120,7 @@ For each `TaskCreate` line `phase-tracker.sh tiles` prints, IN THAT ORDER:
|
|
|
120
120
|
|
|
121
121
|
**The subject is the tracker's line, verbatim.** `phase-tracker.sh tiles` prints each subject from the phase names the command registered (`0:Init 1:Plan 2:Dev 3:Review 4:Commit 5:Report` for a full run). Copy it as printed: no task-id prefix, no renamed, merged or annotated phase (`Analysis + Plan`, `Review + Verify`). What a phase does inside goes in `activeForm` or a sub-step tile, never in the phase name. A tile that disagrees with the tracker is a second, wrong progress record.
|
|
122
122
|
|
|
123
|
-
The `tasklist_id` meta field is persisted so that `:resume` can rebuild the TaskList from the state file in a fresh session.
|
|
123
|
+
The `tasklist_id` meta field is persisted so that `:resume` can rebuild the TaskList from the state file in a fresh session. On Claude Code the `task-mirror.sh` PostToolUse hook records it from every phase tile's TaskCreate result, replacing an id an earlier session left (so a resume's new ids land too), and tells the model when a tile is created after a higher-numbered phase's tile in the same session. The explicit `meta` call stays in the pattern: it is what the other hosts have, and on Claude Code it writes the same value.
|
|
124
124
|
|
|
125
125
|
#### The card is not the widget
|
|
126
126
|
|
|
@@ -7,7 +7,10 @@ character sheets, the floor and wall tiles and the furniture, kept unchanged
|
|
|
7
7
|
in `assets/`. The company furniture (kitchen, restroom, server room, archive,
|
|
8
8
|
reception, lab and mail room pieces) is this project's own drawing: its
|
|
9
9
|
sources are the pixel grids in `pipeline/office-art`, which the build renders
|
|
10
|
-
into `assets/` with the pixel-agents palette.
|
|
10
|
+
into `assets/` with the pixel-agents palette. The employees' sheets
|
|
11
|
+
(`assets/char_12.png` and up) are those six character sheets recoloured
|
|
12
|
+
by the build, one person per sheet, from the colours in
|
|
13
|
+
`pipeline/office-art/employees.json`; no pixel is drawn anew. pixel-agents'
|
|
11
14
|
characters are based on JIK-A-4's MetroCity free top-down character pack
|
|
12
15
|
(https://jik-a-4.itch.io/metrocity-free-topdown-character-pack), released
|
|
13
16
|
under CC0 1.0.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|