@blxzer/pactile 0.5.0 → 0.6.0-beta.2
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 +612 -563
- package/LICENSE +235 -235
- package/README.md +108 -105
- package/README.zh-CN.md +105 -105
- package/bin/compat-warning.js +11 -11
- package/bin/cstl.js +6 -6
- package/bin/pactile.js +3 -3
- package/bin/smart-search.js +38 -38
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +79 -30
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/codex.d.ts +3 -0
- package/dist/commands/codex.d.ts.map +1 -0
- package/dist/commands/codex.js +54 -0
- package/dist/commands/codex.js.map +1 -0
- package/dist/commands/context.d.ts +3 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +272 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/init.d.ts +0 -20
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +285 -456
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.js +1 -1
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/parallel.d.ts +2 -0
- package/dist/commands/parallel.d.ts.map +1 -0
- package/dist/commands/parallel.js +26 -0
- package/dist/commands/parallel.js.map +1 -0
- package/dist/commands/pi.d.ts +3 -0
- package/dist/commands/pi.d.ts.map +1 -0
- package/dist/commands/pi.js +94 -0
- package/dist/commands/pi.js.map +1 -0
- package/dist/commands/session.d.ts +2 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +169 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/task.d.ts +3 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +1026 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/update.d.ts +3 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +130 -47
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +1 -2
- package/dist/commands/workflow.js.map +1 -1
- package/dist/configurators/index.d.ts +5 -51
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +9 -140
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/shared.d.ts +7 -66
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +17 -262
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +5 -6
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +11 -39
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/constants/paths.d.ts +1 -5
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +1 -5
- package/dist/constants/paths.js.map +1 -1
- package/dist/core/compat/environment.d.ts +43 -0
- package/dist/core/compat/environment.d.ts.map +1 -0
- package/dist/core/compat/environment.js +91 -0
- package/dist/core/compat/environment.js.map +1 -0
- package/dist/core/compat/index.d.ts +2 -0
- package/dist/core/compat/index.d.ts.map +1 -0
- package/dist/core/compat/index.js +2 -0
- package/dist/core/compat/index.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pactile/capability.d.ts +65 -0
- package/dist/core/pactile/capability.d.ts.map +1 -0
- package/dist/core/pactile/capability.js +199 -0
- package/dist/core/pactile/capability.js.map +1 -0
- package/dist/core/pactile/index.d.ts +15 -0
- package/dist/core/pactile/index.d.ts.map +1 -0
- package/dist/core/pactile/index.js +13 -0
- package/dist/core/pactile/index.js.map +1 -0
- package/dist/core/pactile/lifecycle.d.ts +106 -0
- package/dist/core/pactile/lifecycle.d.ts.map +1 -0
- package/dist/core/pactile/lifecycle.js +607 -0
- package/dist/core/pactile/lifecycle.js.map +1 -0
- package/dist/core/pactile/middleware/index.d.ts +3 -0
- package/dist/core/pactile/middleware/index.d.ts.map +1 -0
- package/dist/core/pactile/middleware/index.js +2 -0
- package/dist/core/pactile/middleware/index.js.map +1 -0
- package/dist/core/pactile/middleware/redaction.d.ts +4 -0
- package/dist/core/pactile/middleware/redaction.d.ts.map +1 -0
- package/dist/core/pactile/middleware/redaction.js +34 -0
- package/dist/core/pactile/middleware/redaction.js.map +1 -0
- package/dist/core/pactile/middleware/resolver.d.ts +62 -0
- package/dist/core/pactile/middleware/resolver.d.ts.map +1 -0
- package/dist/core/pactile/middleware/resolver.js +803 -0
- package/dist/core/pactile/middleware/resolver.js.map +1 -0
- package/dist/core/pactile/projection.d.ts +81 -0
- package/dist/core/pactile/projection.d.ts.map +1 -0
- package/dist/core/pactile/projection.js +399 -0
- package/dist/core/pactile/projection.js.map +1 -0
- package/dist/core/pactile/provider.d.ts +81 -0
- package/dist/core/pactile/provider.d.ts.map +1 -0
- package/dist/core/pactile/provider.js +313 -0
- package/dist/core/pactile/provider.js.map +1 -0
- package/dist/core/pactile/runtime.d.ts +56 -0
- package/dist/core/pactile/runtime.d.ts.map +1 -0
- package/dist/core/pactile/runtime.js +176 -0
- package/dist/core/pactile/runtime.js.map +1 -0
- package/dist/core/pactile/tile-compiler-types.d.ts +32 -0
- package/dist/core/pactile/tile-compiler-types.d.ts.map +1 -0
- package/dist/core/pactile/tile-compiler-types.js +2 -0
- package/dist/core/pactile/tile-compiler-types.js.map +1 -0
- package/dist/core/pactile/tile.d.ts +71 -0
- package/dist/core/pactile/tile.d.ts.map +1 -0
- package/dist/core/pactile/tile.js +228 -0
- package/dist/core/pactile/tile.js.map +1 -0
- package/dist/core/pactile/trace-runtime/index.d.ts +38 -0
- package/dist/core/pactile/trace-runtime/index.d.ts.map +1 -0
- package/dist/core/pactile/trace-runtime/index.js +292 -0
- package/dist/core/pactile/trace-runtime/index.js.map +1 -0
- package/dist/core/pactile/trace.d.ts +42 -0
- package/dist/core/pactile/trace.d.ts.map +1 -0
- package/dist/core/pactile/trace.js +221 -0
- package/dist/core/pactile/trace.js.map +1 -0
- package/dist/core/pactile/validation.d.ts +91 -0
- package/dist/core/pactile/validation.d.ts.map +1 -0
- package/dist/core/pactile/validation.js +301 -0
- package/dist/core/pactile/validation.js.map +1 -0
- package/dist/core/task/adapter-middleware.d.ts +122 -0
- package/dist/core/task/adapter-middleware.d.ts.map +1 -0
- package/dist/core/task/adapter-middleware.js +476 -0
- package/dist/core/task/adapter-middleware.js.map +1 -0
- package/dist/core/task/compat.d.ts +7 -0
- package/dist/core/task/compat.d.ts.map +1 -0
- package/dist/core/task/compat.js +2 -0
- package/dist/core/task/compat.js.map +1 -0
- package/dist/core/task/contract-migrate.d.ts +29 -0
- package/dist/core/task/contract-migrate.d.ts.map +1 -0
- package/dist/core/task/contract-migrate.js +207 -0
- package/dist/core/task/contract-migrate.js.map +1 -0
- package/dist/core/task/full-quality.d.ts +89 -0
- package/dist/core/task/full-quality.d.ts.map +1 -0
- package/dist/core/task/full-quality.js +379 -0
- package/dist/core/task/full-quality.js.map +1 -0
- package/dist/core/task/index.d.ts +32 -0
- package/dist/core/task/index.d.ts.map +1 -0
- package/dist/core/task/index.js +20 -0
- package/dist/core/task/index.js.map +1 -0
- package/dist/core/task/kernel-cli.d.ts +51 -0
- package/dist/core/task/kernel-cli.d.ts.map +1 -0
- package/dist/core/task/kernel-cli.js +301 -0
- package/dist/core/task/kernel-cli.js.map +1 -0
- package/dist/core/task/kernel-contract.d.ts +164 -0
- package/dist/core/task/kernel-contract.d.ts.map +1 -0
- package/dist/core/task/kernel-contract.js +475 -0
- package/dist/core/task/kernel-contract.js.map +1 -0
- package/dist/core/task/kernel-store.d.ts +130 -0
- package/dist/core/task/kernel-store.d.ts.map +1 -0
- package/dist/core/task/kernel-store.js +905 -0
- package/dist/core/task/kernel-store.js.map +1 -0
- package/dist/core/task/kernel-surface.d.ts +70 -0
- package/dist/core/task/kernel-surface.d.ts.map +1 -0
- package/dist/core/task/kernel-surface.js +121 -0
- package/dist/core/task/kernel-surface.js.map +1 -0
- package/dist/core/task/lite-context-pack.d.ts +71 -0
- package/dist/core/task/lite-context-pack.d.ts.map +1 -0
- package/dist/core/task/lite-context-pack.js +175 -0
- package/dist/core/task/lite-context-pack.js.map +1 -0
- package/dist/core/task/ondemand-topology.d.ts +108 -0
- package/dist/core/task/ondemand-topology.d.ts.map +1 -0
- package/dist/core/task/ondemand-topology.js +456 -0
- package/dist/core/task/ondemand-topology.js.map +1 -0
- package/dist/core/task/p36-artifact-migrate.d.ts +58 -0
- package/dist/core/task/p36-artifact-migrate.d.ts.map +1 -0
- package/dist/core/task/p36-artifact-migrate.js +293 -0
- package/dist/core/task/p36-artifact-migrate.js.map +1 -0
- package/dist/core/task/p36-wave-c.d.ts +39 -0
- package/dist/core/task/p36-wave-c.d.ts.map +1 -0
- package/dist/core/task/p36-wave-c.js +100 -0
- package/dist/core/task/p36-wave-c.js.map +1 -0
- package/dist/core/task/paths.d.ts +37 -0
- package/dist/core/task/paths.d.ts.map +1 -0
- package/dist/core/task/paths.js +49 -0
- package/dist/core/task/paths.js.map +1 -0
- package/dist/core/task/phase.d.ts +27 -0
- package/dist/core/task/phase.d.ts.map +1 -0
- package/dist/core/task/phase.js +24 -0
- package/dist/core/task/phase.js.map +1 -0
- package/dist/core/task/records.d.ts +48 -0
- package/dist/core/task/records.d.ts.map +1 -0
- package/dist/core/task/records.js +100 -0
- package/dist/core/task/records.js.map +1 -0
- package/dist/core/task/schema.d.ts +77 -0
- package/dist/core/task/schema.d.ts.map +1 -0
- package/dist/core/task/schema.js +220 -0
- package/dist/core/task/schema.js.map +1 -0
- package/dist/core/testing/index.d.ts +2 -0
- package/dist/core/testing/index.d.ts.map +1 -0
- package/dist/core/testing/index.js +4 -0
- package/dist/core/testing/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.0.json +9 -9
- package/dist/migrations/manifests/0.1.1.json +9 -9
- package/dist/migrations/manifests/0.1.2.json +9 -9
- package/dist/migrations/manifests/0.1.3.json +9 -9
- package/dist/migrations/manifests/0.1.4.json +9 -9
- package/dist/migrations/manifests/0.2.1.json +9 -9
- package/dist/migrations/manifests/0.2.10.json +374 -374
- package/dist/migrations/manifests/0.2.2.json +8 -8
- package/dist/migrations/manifests/0.2.3.json +9 -9
- package/dist/migrations/manifests/0.2.4.json +8 -8
- package/dist/migrations/manifests/0.2.5.json +8 -8
- package/dist/migrations/manifests/0.2.6.json +8 -8
- package/dist/migrations/manifests/0.2.7.json +8 -8
- package/dist/migrations/manifests/0.2.8.json +9 -9
- package/dist/migrations/manifests/0.2.9.json +9 -9
- package/dist/migrations/manifests/0.3.0.json +89 -89
- package/dist/migrations/manifests/0.3.1.json +32 -32
- package/dist/migrations/manifests/0.3.2.json +16 -16
- package/dist/migrations/manifests/0.3.3.json +9 -9
- package/dist/migrations/manifests/0.3.4.json +9 -9
- package/dist/migrations/manifests/0.3.5.json +9 -9
- package/dist/migrations/manifests/0.3.6.json +9 -9
- package/dist/migrations/manifests/0.4.0.json +9 -9
- package/dist/migrations/manifests/0.4.1.json +9 -9
- package/dist/migrations/manifests/0.4.2.json +9 -9
- package/dist/migrations/manifests/0.4.3.json +9 -9
- package/dist/migrations/manifests/0.5.0-beta.0.json +9 -9
- package/dist/migrations/manifests/0.5.0-beta.1.json +9 -9
- package/dist/migrations/manifests/0.5.0-beta.2.json +8 -8
- package/dist/migrations/manifests/0.5.0-beta.3.json +8 -8
- package/dist/migrations/manifests/0.5.0-beta.4.json +9 -9
- package/dist/migrations/manifests/0.5.0-beta.5.json +9 -9
- package/dist/migrations/manifests/0.5.0.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.1.json +35 -0
- package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.6.0.json +9 -0
- package/dist/pactile/adapters/codex/index.js +1 -1
- package/dist/pactile/adapters/codex/index.js.map +1 -1
- package/dist/pactile/adapters/index.d.ts +0 -1
- package/dist/pactile/adapters/index.d.ts.map +1 -1
- package/dist/pactile/adapters/index.js +0 -1
- package/dist/pactile/adapters/index.js.map +1 -1
- package/dist/pactile/adoption/bindings.d.ts +1 -1
- package/dist/pactile/adoption/bindings.d.ts.map +1 -1
- package/dist/pactile/adoption/bindings.js +1 -1
- package/dist/pactile/adoption/bindings.js.map +1 -1
- package/dist/pactile/adoption/inventory.d.ts +1 -1
- package/dist/pactile/adoption/inventory.d.ts.map +1 -1
- package/dist/pactile/adoption/inventory.js +1 -1
- package/dist/pactile/adoption/inventory.js.map +1 -1
- package/dist/pactile/adoption/safety.js +1 -1
- package/dist/pactile/adoption/safety.js.map +1 -1
- package/dist/pactile/adoption/workflow.d.ts +1 -1
- package/dist/pactile/adoption/workflow.d.ts.map +1 -1
- package/dist/pactile/adoption/workflow.js +1 -1
- package/dist/pactile/adoption/workflow.js.map +1 -1
- package/dist/pactile/codex/bridge.d.ts +71 -0
- package/dist/pactile/codex/bridge.d.ts.map +1 -0
- package/dist/pactile/codex/bridge.js +271 -0
- package/dist/pactile/codex/bridge.js.map +1 -0
- package/dist/pactile/compat/init-context.js +1 -1
- package/dist/pactile/compat/init-context.js.map +1 -1
- package/dist/pactile/compat/node-entry-migration.d.ts +3 -0
- package/dist/pactile/compat/node-entry-migration.d.ts.map +1 -0
- package/dist/pactile/compat/node-entry-migration.js +25 -0
- package/dist/pactile/compat/node-entry-migration.js.map +1 -0
- package/dist/pactile/exit/receipt.js +1 -1
- package/dist/pactile/exit/receipt.js.map +1 -1
- package/dist/pactile/exit/service.d.ts +1 -1
- package/dist/pactile/exit/service.d.ts.map +1 -1
- package/dist/pactile/exit/service.js +1 -3
- package/dist/pactile/exit/service.js.map +1 -1
- package/dist/pactile/lifecycle/command-runner.d.ts +1 -1
- package/dist/pactile/lifecycle/command-runner.d.ts.map +1 -1
- package/dist/pactile/lifecycle/command-runner.js +1 -3
- package/dist/pactile/lifecycle/command-runner.js.map +1 -1
- package/dist/pactile/lifecycle/default-adapters.d.ts.map +1 -1
- package/dist/pactile/lifecycle/default-adapters.js +8 -32
- package/dist/pactile/lifecycle/default-adapters.js.map +1 -1
- package/dist/pactile/lifecycle/orchestrator.d.ts +1 -1
- package/dist/pactile/lifecycle/orchestrator.d.ts.map +1 -1
- package/dist/pactile/lifecycle/orchestrator.js +1 -1
- package/dist/pactile/lifecycle/orchestrator.js.map +1 -1
- package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
- package/dist/pactile/lifecycle/project-files.js +4 -1
- package/dist/pactile/lifecycle/project-files.js.map +1 -1
- package/dist/pactile/middleware/manifest-loader.d.ts +1 -1
- package/dist/pactile/middleware/manifest-loader.d.ts.map +1 -1
- package/dist/pactile/middleware/manifest-loader.js +1 -1
- package/dist/pactile/middleware/manifest-loader.js.map +1 -1
- package/dist/pactile/migration/transaction.d.ts +1 -1
- package/dist/pactile/migration/transaction.d.ts.map +1 -1
- package/dist/pactile/migration/transaction.js +1 -1
- package/dist/pactile/migration/transaction.js.map +1 -1
- package/dist/pactile/parallel/batch.d.ts +41 -0
- package/dist/pactile/parallel/batch.d.ts.map +1 -0
- package/dist/pactile/parallel/batch.js +190 -0
- package/dist/pactile/parallel/batch.js.map +1 -0
- package/dist/pactile/parallel/policy.d.ts +18 -0
- package/dist/pactile/parallel/policy.d.ts.map +1 -0
- package/dist/pactile/parallel/policy.js +174 -0
- package/dist/pactile/parallel/policy.js.map +1 -0
- package/dist/pactile/pi/bridge.d.ts +51 -0
- package/dist/pactile/pi/bridge.d.ts.map +1 -0
- package/dist/pactile/pi/bridge.js +353 -0
- package/dist/pactile/pi/bridge.js.map +1 -0
- package/dist/pactile/pi/rpc.d.ts +41 -0
- package/dist/pactile/pi/rpc.d.ts.map +1 -0
- package/dist/pactile/pi/rpc.js +219 -0
- package/dist/pactile/pi/rpc.js.map +1 -0
- package/dist/pactile/projection/planner.d.ts +1 -1
- package/dist/pactile/projection/planner.d.ts.map +1 -1
- package/dist/pactile/projection/planner.js +1 -1
- package/dist/pactile/projection/planner.js.map +1 -1
- package/dist/pactile/projection/shared/index.js +1 -1
- package/dist/pactile/projection/shared/index.js.map +1 -1
- package/dist/pactile/projection/store.js +1 -1
- package/dist/pactile/projection/store.js.map +1 -1
- package/dist/pactile/providers/probes.d.ts +2 -2
- package/dist/pactile/providers/probes.d.ts.map +1 -1
- package/dist/pactile/providers/probes.js +0 -6
- package/dist/pactile/providers/probes.js.map +1 -1
- package/dist/pactile/registry.d.ts +1 -8
- package/dist/pactile/registry.d.ts.map +1 -1
- package/dist/pactile/registry.js +8 -25
- package/dist/pactile/registry.js.map +1 -1
- package/dist/pactile/retrieval/envelope.d.ts +19 -0
- package/dist/pactile/retrieval/envelope.d.ts.map +1 -0
- package/dist/pactile/retrieval/envelope.js +115 -0
- package/dist/pactile/retrieval/envelope.js.map +1 -0
- package/dist/pactile/retrieval/evidence.js +1 -1
- package/dist/pactile/retrieval/evidence.js.map +1 -1
- package/dist/pactile/retrieval/pack.d.ts +9 -0
- package/dist/pactile/retrieval/pack.d.ts.map +1 -0
- package/dist/pactile/retrieval/pack.js +300 -0
- package/dist/pactile/retrieval/pack.js.map +1 -0
- package/dist/pactile/retrieval/planner.d.ts +1 -1
- package/dist/pactile/retrieval/planner.d.ts.map +1 -1
- package/dist/pactile/retrieval/planner.js +1 -1
- package/dist/pactile/retrieval/planner.js.map +1 -1
- package/dist/pactile/retrieval/types.d.ts +1 -1
- package/dist/pactile/retrieval/types.d.ts.map +1 -1
- package/dist/pactile/runtime/json-api.d.ts +1 -1
- package/dist/pactile/runtime/json-api.js +1 -1
- package/dist/pactile/runtime/paths.js +1 -1
- package/dist/pactile/runtime/paths.js.map +1 -1
- package/dist/pactile/runtime/stores.d.ts +1 -1
- package/dist/pactile/runtime/stores.d.ts.map +1 -1
- package/dist/pactile/runtime/stores.js +1 -1
- package/dist/pactile/runtime/stores.js.map +1 -1
- package/dist/pactile/runtime/unicode-nfc-data.d.ts +1 -1
- package/dist/pactile/runtime/unicode-nfc-data.js +1 -1
- package/dist/pactile/task/config.d.ts +9 -0
- package/dist/pactile/task/config.d.ts.map +1 -0
- package/dist/pactile/task/config.js +103 -0
- package/dist/pactile/task/config.js.map +1 -0
- package/dist/pactile/task/context.d.ts +19 -0
- package/dist/pactile/task/context.d.ts.map +1 -0
- package/dist/pactile/task/context.js +117 -0
- package/dist/pactile/task/context.js.map +1 -0
- package/dist/pactile/task/guards.d.ts +21 -0
- package/dist/pactile/task/guards.d.ts.map +1 -0
- package/dist/pactile/task/guards.js +232 -0
- package/dist/pactile/task/guards.js.map +1 -0
- package/dist/pactile/task/scaffold.d.ts +6 -0
- package/dist/pactile/task/scaffold.d.ts.map +1 -0
- package/dist/pactile/task/scaffold.js +57 -0
- package/dist/pactile/task/scaffold.js.map +1 -0
- package/dist/pactile/task/session-memory.d.ts +2 -0
- package/dist/pactile/task/session-memory.d.ts.map +1 -0
- package/dist/pactile/task/session-memory.js +123 -0
- package/dist/pactile/task/session-memory.js.map +1 -0
- package/dist/pactile/task/session-pack.d.ts +3 -0
- package/dist/pactile/task/session-pack.d.ts.map +1 -0
- package/dist/pactile/task/session-pack.js +139 -0
- package/dist/pactile/task/session-pack.js.map +1 -0
- package/dist/pactile/task/session.d.ts +13 -0
- package/dist/pactile/task/session.d.ts.map +1 -0
- package/dist/pactile/task/session.js +105 -0
- package/dist/pactile/task/session.js.map +1 -0
- package/dist/pactile/task/strategy.d.ts +24 -0
- package/dist/pactile/task/strategy.d.ts.map +1 -0
- package/dist/pactile/task/strategy.js +136 -0
- package/dist/pactile/task/strategy.js.map +1 -0
- package/dist/pactile/task/task-map.d.ts +35 -0
- package/dist/pactile/task/task-map.d.ts.map +1 -0
- package/dist/pactile/task/task-map.js +217 -0
- package/dist/pactile/task/task-map.js.map +1 -0
- package/dist/pactile/task/workflow-phase.d.ts +3 -0
- package/dist/pactile/task/workflow-phase.d.ts.map +1 -0
- package/dist/pactile/task/workflow-phase.js +56 -0
- package/dist/pactile/task/workflow-phase.js.map +1 -0
- package/dist/pactile/tiles/catalog.d.ts +1 -1
- package/dist/pactile/tiles/catalog.d.ts.map +1 -1
- package/dist/pactile/tiles/catalog.js +1 -1
- package/dist/pactile/tiles/catalog.js.map +1 -1
- package/dist/pactile/tiles/compiler.d.ts +1 -1
- package/dist/pactile/tiles/compiler.d.ts.map +1 -1
- package/dist/pactile/tiles/compiler.js +1 -1
- package/dist/pactile/tiles/compiler.js.map +1 -1
- package/dist/pactile/tiles/content/ondemand/index.d.ts +2 -2
- package/dist/pactile/tiles/content/ondemand/index.d.ts.map +1 -1
- package/dist/pactile/tiles/content/ondemand/index.js +2 -16
- package/dist/pactile/tiles/content/ondemand/index.js.map +1 -1
- package/dist/pactile/tiles/loader.d.ts +1 -1
- package/dist/pactile/tiles/loader.d.ts.map +1 -1
- package/dist/pactile/tiles/loader.js +1 -1
- package/dist/pactile/tiles/loader.js.map +1 -1
- package/dist/templates/common/bundled-skills/pactile-check/SKILL.md +161 -161
- package/dist/templates/common/bundled-skills/pactile-check/references/fowler-12-smells.md +28 -28
- package/dist/templates/common/bundled-skills/pactile-handoff/SKILL.md +117 -117
- package/dist/templates/common/bundled-skills/pactile-meta/SKILL.md +75 -75
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/add-project-local-conventions.md +83 -83
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-agents.md +5 -47
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-context-loading.md +79 -84
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +5 -57
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-skills-or-commands.md +7 -77
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-spec-structure.md +83 -83
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-task-lifecycle.md +82 -88
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-workflow.md +65 -65
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/overview.md +12 -55
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/context-injection.md +68 -68
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +7 -83
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/overview.md +7 -51
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/spec-system.md +102 -102
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/task-system.md +138 -133
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workflow.md +75 -75
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workspace-memory.md +71 -71
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/agents.md +7 -69
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +7 -59
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +5 -45
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +9 -45
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/skills-and-commands.md +7 -108
- package/dist/templates/common/bundled-skills/pactile-micro-grill/SKILL.md +68 -68
- package/dist/templates/common/bundled-skills/pactile-skill-creator/SKILL.md +47 -47
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/authoring-rules.md +170 -170
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/general-authoring.md +189 -189
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/pactile-skill-locations.md +11 -52
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/review-checklist.md +52 -52
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/SKILL.md +41 -41
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/mcp-setup.md +18 -90
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/repository-analysis.md +41 -59
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-task-planning.md +61 -61
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-writing.md +70 -70
- package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +393 -393
- package/dist/templates/common/bundled-skills/smart-search-cli/agents/openai.yaml +3 -3
- package/dist/templates/common/bundled-skills/smart-search-cli/examples/batch-search.md +98 -98
- package/dist/templates/common/bundled-skills/smart-search-cli/examples/evidence-gathering.md +89 -89
- package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +323 -323
- package/dist/templates/common/commands/continue.md +60 -62
- package/dist/templates/common/commands/finish-work.md +84 -82
- package/dist/templates/common/commands/start.md +66 -66
- package/dist/templates/common/index.d.ts +0 -20
- package/dist/templates/common/index.d.ts.map +1 -1
- package/dist/templates/common/index.js +0 -16
- package/dist/templates/common/index.js.map +1 -1
- package/dist/templates/common/skills/before-dev.md +35 -35
- package/dist/templates/common/skills/brainstorm.md +204 -204
- package/dist/templates/common/skills/break-loop.md +125 -125
- package/dist/templates/common/skills/update-spec.md +363 -363
- package/dist/templates/extract.d.ts +1 -8
- package/dist/templates/extract.d.ts.map +1 -1
- package/dist/templates/extract.js +0 -31
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/markdown/agents.md +14 -14
- package/dist/templates/markdown/framework/artifact-locale-guide.md.txt +93 -93
- package/dist/templates/markdown/framework/codex-worker-dispatch.md.txt +9 -0
- package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +7 -28
- package/dist/templates/markdown/framework/execution-strategy.md.txt +14 -45
- package/dist/templates/markdown/framework/index.md.txt +20 -31
- package/dist/templates/markdown/framework/injection-budget-guide.md.txt +7 -111
- package/dist/templates/markdown/framework/middleware-protocol.md.txt +139 -238
- package/dist/templates/markdown/framework/parallel-first-execution.md.txt +116 -116
- package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +105 -105
- package/dist/templates/markdown/framework/release-boundary.md.txt +30 -30
- package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +9 -199
- package/dist/templates/markdown/framework/upgrade.md.txt +15 -15
- package/dist/templates/markdown/framework/verification-strength-guide.md.txt +185 -185
- package/dist/templates/markdown/gitignore.txt +15 -15
- package/dist/templates/markdown/index.d.ts +1 -5
- package/dist/templates/markdown/index.d.ts.map +1 -1
- package/dist/templates/markdown/index.js +3 -23
- package/dist/templates/markdown/index.js.map +1 -1
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -51
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -54
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -51
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -38
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -51
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -51
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -59
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -54
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -51
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -39
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -51
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -51
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -51
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +174 -174
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +162 -162
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +17 -634
- package/dist/templates/markdown/spec/guides/debug-loop-guide.md.txt +227 -227
- package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +75 -75
- package/dist/templates/markdown/spec/guides/e2e-walkthrough-guide.md.txt +88 -93
- package/dist/templates/markdown/spec/guides/index.md.txt +131 -131
- package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +137 -139
- package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +179 -179
- package/dist/templates/markdown/workspace-index.md +122 -125
- package/dist/templates/markdown/worktree.yaml.txt +58 -58
- package/dist/templates/pactile/CONTEXT.md +101 -113
- package/dist/templates/pactile/config/execution-strategy-rules.json +30 -31
- package/dist/templates/pactile/config.yaml +111 -130
- package/dist/templates/pactile/docs/adr/README.md +21 -21
- package/dist/templates/pactile/gitignore.txt +35 -35
- package/dist/templates/pactile/index.d.ts +3 -127
- package/dist/templates/pactile/index.d.ts.map +1 -1
- package/dist/templates/pactile/index.js +13 -298
- package/dist/templates/pactile/index.js.map +1 -1
- package/dist/templates/pactile/modules/approval-personal/contract.md +43 -43
- package/dist/templates/pactile/modules/close-basic/contract.md +37 -37
- package/dist/templates/pactile/modules/context-progressive/contract.md +44 -44
- package/dist/templates/pactile/modules/debug-recovery/contract.md +44 -44
- package/dist/templates/pactile/modules/define-basic/contract.md +39 -39
- package/dist/templates/pactile/modules/define-extended/contract.md +45 -45
- package/dist/templates/pactile/modules/execute-agent/contract.md +38 -38
- package/dist/templates/pactile/modules/independent-check/contract.md +35 -35
- package/dist/templates/pactile/modules/index.json +127 -133
- package/dist/templates/pactile/modules/intake-basic/contract.md +34 -34
- package/dist/templates/pactile/modules/observability-local/contract.md +31 -31
- package/dist/templates/pactile/modules/parent-child/contract.md +45 -45
- package/dist/templates/pactile/modules/personal-memory/contract.md +55 -55
- package/dist/templates/pactile/modules/retention-storage/contract.md +43 -43
- package/dist/templates/pactile/modules/retrieval-extended/contract.md +78 -77
- package/dist/templates/pactile/modules/session-transfer/contract.md +41 -41
- package/dist/templates/pactile/modules/spec-learning/contract.md +50 -50
- package/dist/templates/pactile/modules/vcs-integration/contract.md +46 -46
- package/dist/templates/pactile/modules/verify-basic/contract.md +38 -38
- package/dist/templates/pactile/modules/worker-orchestration/contract.md +47 -47
- package/dist/templates/pactile/scripts/retrieval_probe_matrix_template.json +43 -43
- package/dist/templates/pactile/tasks/locale/en/default-prd.md +27 -27
- package/dist/templates/pactile/tasks/locale/zh/default-prd.md +27 -27
- package/dist/templates/pactile/tasks/templates/release-execution/design.md +60 -60
- package/dist/templates/pactile/tasks/templates/release-execution/handoff-template.md +28 -28
- package/dist/templates/pactile/tasks/templates/release-execution/implement.md +28 -28
- package/dist/templates/pactile/tasks/templates/release-execution/prd.md +30 -30
- package/dist/templates/pactile/tasks/templates/release-readiness/design.md +49 -49
- package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +38 -38
- package/dist/templates/pactile/tasks/templates/release-readiness/implement.md +28 -28
- package/dist/templates/pactile/tasks/templates/release-readiness/prd.md +30 -30
- package/dist/templates/pactile/workflow.md +65 -64
- package/dist/types/ai-tools.d.ts +12 -13
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +15 -14
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/utils/codebase-retrieval-router.d.ts +1 -1
- package/dist/utils/codebase-retrieval-router.d.ts.map +1 -1
- package/dist/utils/cwd-guard.js +1 -1
- package/dist/utils/cwd-guard.js.map +1 -1
- package/dist/utils/developer.d.ts +5 -0
- package/dist/utils/developer.d.ts.map +1 -0
- package/dist/utils/developer.js +38 -0
- package/dist/utils/developer.js.map +1 -0
- package/dist/utils/git-root.d.ts +3 -0
- package/dist/utils/git-root.d.ts.map +1 -0
- package/dist/utils/git-root.js +24 -0
- package/dist/utils/git-root.js.map +1 -0
- package/dist/utils/local-date.d.ts +3 -0
- package/dist/utils/local-date.d.ts.map +1 -0
- package/dist/utils/local-date.js +8 -0
- package/dist/utils/local-date.js.map +1 -0
- package/dist/utils/manifest-prune.d.ts +5 -4
- package/dist/utils/manifest-prune.d.ts.map +1 -1
- package/dist/utils/manifest-prune.js +11 -21
- package/dist/utils/manifest-prune.js.map +1 -1
- package/dist/utils/p36-upgrade.d.ts +1 -1
- package/dist/utils/p36-upgrade.d.ts.map +1 -1
- package/dist/utils/p36-upgrade.js +1 -1
- package/dist/utils/p36-upgrade.js.map +1 -1
- package/dist/utils/post-update-smoke.d.ts +1 -4
- package/dist/utils/post-update-smoke.d.ts.map +1 -1
- package/dist/utils/post-update-smoke.js +13 -25
- package/dist/utils/post-update-smoke.js.map +1 -1
- package/dist/utils/project-capabilities.d.ts +2 -17
- package/dist/utils/project-capabilities.d.ts.map +1 -1
- package/dist/utils/project-capabilities.js +14 -119
- package/dist/utils/project-capabilities.js.map +1 -1
- package/dist/utils/readiness.d.ts +14 -0
- package/dist/utils/readiness.d.ts.map +1 -1
- package/dist/utils/readiness.js +61 -30
- package/dist/utils/readiness.js.map +1 -1
- package/dist/utils/retrieval-execution-telemetry.d.ts +1 -1
- package/dist/utils/retrieval-execution-telemetry.d.ts.map +1 -1
- package/dist/utils/retrieval-result-ranking.d.ts +1 -1
- package/dist/utils/retrieval-result-ranking.d.ts.map +1 -1
- package/dist/utils/retrieval-tool-classification.d.ts +1 -1
- package/dist/utils/retrieval-tool-classification.d.ts.map +1 -1
- package/dist/utils/task-json.d.ts +3 -3
- package/dist/utils/task-json.d.ts.map +1 -1
- package/dist/utils/task-json.js +3 -3
- package/dist/utils/task-json.js.map +1 -1
- package/dist/utils/template-hash.d.ts +4 -0
- package/dist/utils/template-hash.d.ts.map +1 -1
- package/dist/utils/template-hash.js +1 -1
- package/dist/utils/template-hash.js.map +1 -1
- package/dist/utils/update-rollout-report.d.ts +9 -0
- package/dist/utils/update-rollout-report.d.ts.map +1 -1
- package/dist/utils/update-rollout-report.js +14 -1
- package/dist/utils/update-rollout-report.js.map +1 -1
- package/package.json +22 -11
- package/scripts/postinstall.js +6 -6
- package/dist/commands/channel/adapters/claude.d.ts +0 -29
- package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
- package/dist/commands/channel/adapters/claude.js +0 -203
- package/dist/commands/channel/adapters/claude.js.map +0 -1
- package/dist/commands/channel/adapters/codex.d.ts +0 -85
- package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
- package/dist/commands/channel/adapters/codex.js +0 -505
- package/dist/commands/channel/adapters/codex.js.map +0 -1
- package/dist/commands/channel/adapters/index.d.ts +0 -84
- package/dist/commands/channel/adapters/index.d.ts.map +0 -1
- package/dist/commands/channel/adapters/index.js +0 -115
- package/dist/commands/channel/adapters/index.js.map +0 -1
- package/dist/commands/channel/adapters/types.d.ts +0 -33
- package/dist/commands/channel/adapters/types.d.ts.map +0 -1
- package/dist/commands/channel/adapters/types.js +0 -2
- package/dist/commands/channel/adapters/types.js.map +0 -1
- package/dist/commands/channel/agent-loader.d.ts +0 -32
- package/dist/commands/channel/agent-loader.d.ts.map +0 -1
- package/dist/commands/channel/agent-loader.js +0 -154
- package/dist/commands/channel/agent-loader.js.map +0 -1
- package/dist/commands/channel/context-loader.d.ts +0 -26
- package/dist/commands/channel/context-loader.d.ts.map +0 -1
- package/dist/commands/channel/context-loader.js +0 -290
- package/dist/commands/channel/context-loader.js.map +0 -1
- package/dist/commands/channel/context.d.ts +0 -16
- package/dist/commands/channel/context.d.ts.map +0 -1
- package/dist/commands/channel/context.js +0 -83
- package/dist/commands/channel/context.js.map +0 -1
- package/dist/commands/channel/create.d.ts +0 -27
- package/dist/commands/channel/create.d.ts.map +0 -1
- package/dist/commands/channel/create.js +0 -39
- package/dist/commands/channel/create.js.map +0 -1
- package/dist/commands/channel/dev-parse-trace.d.ts +0 -14
- package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
- package/dist/commands/channel/dev-parse-trace.js +0 -70
- package/dist/commands/channel/dev-parse-trace.js.map +0 -1
- package/dist/commands/channel/guard.d.ts +0 -150
- package/dist/commands/channel/guard.d.ts.map +0 -1
- package/dist/commands/channel/guard.js +0 -475
- package/dist/commands/channel/guard.js.map +0 -1
- package/dist/commands/channel/index.d.ts +0 -3
- package/dist/commands/channel/index.d.ts.map +0 -1
- package/dist/commands/channel/index.js +0 -531
- package/dist/commands/channel/index.js.map +0 -1
- package/dist/commands/channel/interrupt.d.ts +0 -10
- package/dist/commands/channel/interrupt.d.ts.map +0 -1
- package/dist/commands/channel/interrupt.js +0 -22
- package/dist/commands/channel/interrupt.js.map +0 -1
- package/dist/commands/channel/kill.d.ts +0 -7
- package/dist/commands/channel/kill.d.ts.map +0 -1
- package/dist/commands/channel/kill.js +0 -121
- package/dist/commands/channel/kill.js.map +0 -1
- package/dist/commands/channel/list.d.ts +0 -17
- package/dist/commands/channel/list.d.ts.map +0 -1
- package/dist/commands/channel/list.js +0 -233
- package/dist/commands/channel/list.js.map +0 -1
- package/dist/commands/channel/messages.d.ts +0 -15
- package/dist/commands/channel/messages.d.ts.map +0 -1
- package/dist/commands/channel/messages.js +0 -245
- package/dist/commands/channel/messages.js.map +0 -1
- package/dist/commands/channel/rm.d.ts +0 -27
- package/dist/commands/channel/rm.d.ts.map +0 -1
- package/dist/commands/channel/rm.js +0 -216
- package/dist/commands/channel/rm.js.map +0 -1
- package/dist/commands/channel/run.d.ts +0 -30
- package/dist/commands/channel/run.d.ts.map +0 -1
- package/dist/commands/channel/run.js +0 -130
- package/dist/commands/channel/run.js.map +0 -1
- package/dist/commands/channel/send.d.ts +0 -11
- package/dist/commands/channel/send.d.ts.map +0 -1
- package/dist/commands/channel/send.js +0 -24
- package/dist/commands/channel/send.js.map +0 -1
- package/dist/commands/channel/spawn.d.ts +0 -40
- package/dist/commands/channel/spawn.d.ts.map +0 -1
- package/dist/commands/channel/spawn.js +0 -242
- package/dist/commands/channel/spawn.js.map +0 -1
- package/dist/commands/channel/store/events.d.ts +0 -39
- package/dist/commands/channel/store/events.d.ts.map +0 -1
- package/dist/commands/channel/store/events.js +0 -87
- package/dist/commands/channel/store/events.js.map +0 -1
- package/dist/commands/channel/store/filter.d.ts +0 -3
- package/dist/commands/channel/store/filter.d.ts.map +0 -1
- package/dist/commands/channel/store/filter.js +0 -2
- package/dist/commands/channel/store/filter.js.map +0 -1
- package/dist/commands/channel/store/lock.d.ts +0 -23
- package/dist/commands/channel/store/lock.d.ts.map +0 -1
- package/dist/commands/channel/store/lock.js +0 -99
- package/dist/commands/channel/store/lock.js.map +0 -1
- package/dist/commands/channel/store/paths.d.ts +0 -63
- package/dist/commands/channel/store/paths.d.ts.map +0 -1
- package/dist/commands/channel/store/paths.js +0 -247
- package/dist/commands/channel/store/paths.js.map +0 -1
- package/dist/commands/channel/store/schema.d.ts +0 -27
- package/dist/commands/channel/store/schema.d.ts.map +0 -1
- package/dist/commands/channel/store/schema.js +0 -34
- package/dist/commands/channel/store/schema.js.map +0 -1
- package/dist/commands/channel/store/thread-state.d.ts +0 -5
- package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
- package/dist/commands/channel/store/thread-state.js +0 -16
- package/dist/commands/channel/store/thread-state.js.map +0 -1
- package/dist/commands/channel/store/watch.d.ts +0 -19
- package/dist/commands/channel/store/watch.d.ts.map +0 -1
- package/dist/commands/channel/store/watch.js +0 -146
- package/dist/commands/channel/store/watch.js.map +0 -1
- package/dist/commands/channel/supervisor/idle.d.ts +0 -46
- package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/idle.js +0 -72
- package/dist/commands/channel/supervisor/idle.js.map +0 -1
- package/dist/commands/channel/supervisor/inbox.d.ts +0 -30
- package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/inbox.js +0 -160
- package/dist/commands/channel/supervisor/inbox.js.map +0 -1
- package/dist/commands/channel/supervisor/shutdown.d.ts +0 -68
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/shutdown.js +0 -146
- package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
- package/dist/commands/channel/supervisor/stdout.d.ts +0 -51
- package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/stdout.js +0 -121
- package/dist/commands/channel/supervisor/stdout.js.map +0 -1
- package/dist/commands/channel/supervisor/turns.d.ts +0 -31
- package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/turns.js +0 -45
- package/dist/commands/channel/supervisor/turns.js.map +0 -1
- package/dist/commands/channel/supervisor/warning.d.ts +0 -48
- package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
- package/dist/commands/channel/supervisor/warning.js +0 -77
- package/dist/commands/channel/supervisor/warning.js.map +0 -1
- package/dist/commands/channel/supervisor.d.ts +0 -59
- package/dist/commands/channel/supervisor.d.ts.map +0 -1
- package/dist/commands/channel/supervisor.js +0 -345
- package/dist/commands/channel/supervisor.js.map +0 -1
- package/dist/commands/channel/text-body.d.ts +0 -13
- package/dist/commands/channel/text-body.d.ts.map +0 -1
- package/dist/commands/channel/text-body.js +0 -47
- package/dist/commands/channel/text-body.js.map +0 -1
- package/dist/commands/channel/threads.d.ts +0 -39
- package/dist/commands/channel/threads.d.ts.map +0 -1
- package/dist/commands/channel/threads.js +0 -106
- package/dist/commands/channel/threads.js.map +0 -1
- package/dist/commands/channel/title.d.ts +0 -12
- package/dist/commands/channel/title.d.ts.map +0 -1
- package/dist/commands/channel/title.js +0 -24
- package/dist/commands/channel/title.js.map +0 -1
- package/dist/commands/channel/wait.d.ts +0 -17
- package/dist/commands/channel/wait.d.ts.map +0 -1
- package/dist/commands/channel/wait.js +0 -75
- package/dist/commands/channel/wait.js.map +0 -1
- package/dist/commands/validate-rules.d.ts +0 -6
- package/dist/commands/validate-rules.d.ts.map +0 -1
- package/dist/commands/validate-rules.js +0 -33
- package/dist/commands/validate-rules.js.map +0 -1
- package/dist/configurators/cursor.d.ts +0 -21
- package/dist/configurators/cursor.d.ts.map +0 -1
- package/dist/configurators/cursor.js +0 -51
- package/dist/configurators/cursor.js.map +0 -1
- package/dist/pactile/adapters/cursor/index.d.ts +0 -60
- package/dist/pactile/adapters/cursor/index.d.ts.map +0 -1
- package/dist/pactile/adapters/cursor/index.js +0 -186
- package/dist/pactile/adapters/cursor/index.js.map +0 -1
- package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +0 -179
- package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +0 -149
- package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +0 -904
- package/dist/templates/cursor/agents/pactile-check.md +0 -58
- package/dist/templates/cursor/agents/pactile-implement.md +0 -56
- package/dist/templates/cursor/agents/pactile-research.md +0 -51
- package/dist/templates/cursor/commands/handoff.md +0 -101
- package/dist/templates/cursor/fixtures/expected-rules.d.ts +0 -14
- package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +0 -1
- package/dist/templates/cursor/fixtures/expected-rules.js +0 -20
- package/dist/templates/cursor/fixtures/expected-rules.js.map +0 -1
- package/dist/templates/cursor/hooks.json +0 -52
- package/dist/templates/cursor/index.d.ts +0 -19
- package/dist/templates/cursor/index.d.ts.map +0 -1
- package/dist/templates/cursor/index.js +0 -19
- package/dist/templates/cursor/index.js.map +0 -1
- package/dist/templates/cursor/rules/pactile-bootstrap.mdc +0 -18
- package/dist/templates/cursor/worktrees.json +0 -11
- package/dist/templates/markdown/framework/cursor-context-injection-guide.md.txt +0 -85
- package/dist/templates/markdown/framework/cursor-native-modes-guide.md.txt +0 -239
- package/dist/templates/markdown/framework/cursor-semantic-compliance.md.txt +0 -41
- package/dist/templates/markdown/framework/cursor-subagent-policy.md.txt +0 -90
- package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +0 -45
- package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +0 -25
- package/dist/templates/pactile/modules/candidate-pool/contract.md +0 -37
- package/dist/templates/pactile/pool/README.md +0 -149
- package/dist/templates/pactile/pool/items/.gitkeep +0 -0
- package/dist/templates/pactile/pool/plan.md +0 -50
- package/dist/templates/pactile/scripts/__init__.py +0 -5
- package/dist/templates/pactile/scripts/add_session.py +0 -547
- package/dist/templates/pactile/scripts/build_context_pack.py +0 -17
- package/dist/templates/pactile/scripts/build_retrieval_pack.py +0 -376
- package/dist/templates/pactile/scripts/codegraph_session_smoke.py +0 -76
- package/dist/templates/pactile/scripts/common/__init__.py +0 -103
- package/dist/templates/pactile/scripts/common/active_task.py +0 -576
- package/dist/templates/pactile/scripts/common/adapter_middleware.py +0 -1373
- package/dist/templates/pactile/scripts/common/artifact_locale.py +0 -303
- package/dist/templates/pactile/scripts/common/artifact_search.py +0 -587
- package/dist/templates/pactile/scripts/common/cli_adapter.py +0 -135
- package/dist/templates/pactile/scripts/common/cli_environment.py +0 -155
- package/dist/templates/pactile/scripts/common/codebase_retrieval_router.py +0 -1339
- package/dist/templates/pactile/scripts/common/config.py +0 -497
- package/dist/templates/pactile/scripts/common/context_pack.py +0 -371
- package/dist/templates/pactile/scripts/common/cursor_retrieval_env.py +0 -31
- package/dist/templates/pactile/scripts/common/developer.py +0 -190
- package/dist/templates/pactile/scripts/common/execution_strategy.py +0 -268
- package/dist/templates/pactile/scripts/common/full_quality.py +0 -237
- package/dist/templates/pactile/scripts/common/git.py +0 -37
- package/dist/templates/pactile/scripts/common/git_context.py +0 -198
- package/dist/templates/pactile/scripts/common/injection_budget.py +0 -317
- package/dist/templates/pactile/scripts/common/io.py +0 -37
- package/dist/templates/pactile/scripts/common/kernel_command.py +0 -369
- package/dist/templates/pactile/scripts/common/lite_context.py +0 -280
- package/dist/templates/pactile/scripts/common/log.py +0 -45
- package/dist/templates/pactile/scripts/common/ondemand_topology.py +0 -419
- package/dist/templates/pactile/scripts/common/packages_context.py +0 -239
- package/dist/templates/pactile/scripts/common/pactile_config.py +0 -131
- package/dist/templates/pactile/scripts/common/parallel_declaration.py +0 -369
- package/dist/templates/pactile/scripts/common/parent_orchestration.py +0 -1198
- package/dist/templates/pactile/scripts/common/paths.py +0 -756
- package/dist/templates/pactile/scripts/common/pool_refs.py +0 -119
- package/dist/templates/pactile/scripts/common/pool_slice.py +0 -269
- package/dist/templates/pactile/scripts/common/pool_store.py +0 -766
- package/dist/templates/pactile/scripts/common/project_file_stats.py +0 -91
- package/dist/templates/pactile/scripts/common/retrieval_adapter_metadata.py +0 -943
- package/dist/templates/pactile/scripts/common/retrieval_agent_instructions.py +0 -123
- package/dist/templates/pactile/scripts/common/retrieval_evidence.py +0 -915
- package/dist/templates/pactile/scripts/common/retrieval_pack.py +0 -422
- package/dist/templates/pactile/scripts/common/retrieval_pack_context.py +0 -122
- package/dist/templates/pactile/scripts/common/retrieval_plan_gate.py +0 -61
- package/dist/templates/pactile/scripts/common/retrieval_result_ranking.py +0 -104
- package/dist/templates/pactile/scripts/common/retrieval_tool_classification.py +0 -166
- package/dist/templates/pactile/scripts/common/safe_commit.py +0 -285
- package/dist/templates/pactile/scripts/common/semantic_plan_gate.py +0 -53
- package/dist/templates/pactile/scripts/common/session_context.py +0 -1213
- package/dist/templates/pactile/scripts/common/session_memory.py +0 -386
- package/dist/templates/pactile/scripts/common/session_pack.py +0 -886
- package/dist/templates/pactile/scripts/common/smart_search_evidence.py +0 -514
- package/dist/templates/pactile/scripts/common/smart_search_resolve.py +0 -150
- package/dist/templates/pactile/scripts/common/subagent_dispatch.py +0 -592
- package/dist/templates/pactile/scripts/common/task_context.py +0 -241
- package/dist/templates/pactile/scripts/common/task_dashboard.py +0 -286
- package/dist/templates/pactile/scripts/common/task_dependencies.py +0 -648
- package/dist/templates/pactile/scripts/common/task_gates.py +0 -2478
- package/dist/templates/pactile/scripts/common/task_map.py +0 -703
- package/dist/templates/pactile/scripts/common/task_queue.py +0 -188
- package/dist/templates/pactile/scripts/common/task_store.py +0 -2252
- package/dist/templates/pactile/scripts/common/task_utils.py +0 -274
- package/dist/templates/pactile/scripts/common/tasks.py +0 -231
- package/dist/templates/pactile/scripts/common/test_adapter_middleware.py +0 -199
- package/dist/templates/pactile/scripts/common/test_depends_mode_block.py +0 -509
- package/dist/templates/pactile/scripts/common/test_full_quality.py +0 -197
- package/dist/templates/pactile/scripts/common/test_kernel_command.py +0 -336
- package/dist/templates/pactile/scripts/common/test_lite_path.py +0 -190
- package/dist/templates/pactile/scripts/common/test_observable_defaults.py +0 -141
- package/dist/templates/pactile/scripts/common/test_ondemand_topology.py +0 -237
- package/dist/templates/pactile/scripts/common/test_parallel_declaration.py +0 -264
- package/dist/templates/pactile/scripts/common/test_pool_slice.py +0 -198
- package/dist/templates/pactile/scripts/common/test_pool_store.py +0 -452
- package/dist/templates/pactile/scripts/common/test_retrieval_arbitration.py +0 -331
- package/dist/templates/pactile/scripts/common/test_task_dashboard.py +0 -155
- package/dist/templates/pactile/scripts/common/test_task_dependencies.py +0 -329
- package/dist/templates/pactile/scripts/common/test_task_store_kernel_patch.py +0 -163
- package/dist/templates/pactile/scripts/common/types.py +0 -110
- package/dist/templates/pactile/scripts/common/workflow_phase.py +0 -194
- package/dist/templates/pactile/scripts/compile_session_pack.py +0 -15
- package/dist/templates/pactile/scripts/cursor_retrieval_probe.py +0 -64
- package/dist/templates/pactile/scripts/cursor_retrieval_probe_prompt.md +0 -33
- package/dist/templates/pactile/scripts/generate_dispatch_prompt.py +0 -182
- package/dist/templates/pactile/scripts/get_context.py +0 -19
- package/dist/templates/pactile/scripts/get_developer.py +0 -26
- package/dist/templates/pactile/scripts/hooks/linear_sync.py +0 -243
- package/dist/templates/pactile/scripts/init_developer.py +0 -51
- package/dist/templates/pactile/scripts/injection_budget_probe.py +0 -69
- package/dist/templates/pactile/scripts/pool.py +0 -237
- package/dist/templates/pactile/scripts/rank_retrieval_candidates.py +0 -98
- package/dist/templates/pactile/scripts/route_codebase_retrieval.py +0 -72
- package/dist/templates/pactile/scripts/run_smart_search.py +0 -12
- package/dist/templates/pactile/scripts/score_evidence.py +0 -131
- package/dist/templates/pactile/scripts/search_artifacts.py +0 -13
- package/dist/templates/pactile/scripts/search_memory.py +0 -12
- package/dist/templates/pactile/scripts/spec_health_outcomes.py +0 -160
- package/dist/templates/pactile/scripts/task.py +0 -1118
- package/dist/templates/pactile/scripts/verify_evidence_probe.py +0 -138
- package/dist/templates/shared-hooks/event-bridge.py +0 -121
- package/dist/templates/shared-hooks/index.d.ts +0 -50
- package/dist/templates/shared-hooks/index.d.ts.map +0 -1
- package/dist/templates/shared-hooks/index.js +0 -96
- package/dist/templates/shared-hooks/index.js.map +0 -1
- package/dist/templates/shared-hooks/inject-retrieval-plan.py +0 -217
- package/dist/templates/shared-hooks/inject-shell-session-context.py +0 -183
- package/dist/templates/shared-hooks/inject-subagent-context.py +0 -267
- package/dist/templates/shared-hooks/inject-workflow-state.py +0 -106
- package/dist/templates/shared-hooks/rename-session-for-task.py +0 -231
- package/dist/templates/shared-hooks/research-end-retrieval-pack.py +0 -345
- package/dist/templates/shared-hooks/session-start.py +0 -355
- package/dist/templates/shared-hooks/spec-write-audit.py +0 -173
- package/dist/utils/mirror-check.d.ts +0 -22
- package/dist/utils/mirror-check.d.ts.map +0 -1
- package/dist/utils/mirror-check.js +0 -90
- package/dist/utils/mirror-check.js.map +0 -1
- package/dist/utils/validate-rules.d.ts +0 -21
- package/dist/utils/validate-rules.d.ts.map +0 -1
- package/dist/utils/validate-rules.js +0 -88
- package/dist/utils/validate-rules.js.map +0 -1
package/dist/commands/init.js
CHANGED
|
@@ -8,13 +8,12 @@ import figlet from "figlet";
|
|
|
8
8
|
import inquirer from "inquirer";
|
|
9
9
|
import { createWorkflowStructure } from "../configurators/workflow.js";
|
|
10
10
|
import { getInitToolChoices } from "../configurators/index.js";
|
|
11
|
-
import { getPythonCommandForPlatform, setResolvedPythonCommand, } from "../configurators/shared.js";
|
|
12
11
|
import { DIR_NAMES, FILE_NAMES, PATHS } from "../constants/paths.js";
|
|
13
12
|
import { VERSION } from "../constants/version.js";
|
|
14
13
|
import { setWriteMode, startRecordingWrites, stopRecordingWrites, } from "../utils/file-writer.js";
|
|
15
|
-
import { applyKernelCreate, applyKernelStart, writeWaveCConfirmed, } from "
|
|
16
|
-
import { PACTILE_ENVIRONMENT_KEYS, readPactileEnvironment, } from "@blxzer/pactile-core";
|
|
14
|
+
import { applyKernelCreate, applyKernelStart, writeWaveCConfirmed, } from "../core/task/index.js";
|
|
17
15
|
import { emptyTaskJson } from "../utils/task-json.js";
|
|
16
|
+
import { initializeDeveloper, readDeveloper } from "../utils/developer.js";
|
|
18
17
|
import { detectProjectType, detectMonorepo, sanitizePkgName, } from "../utils/project-detector.js";
|
|
19
18
|
import { initializeHashes, removeHash } from "../utils/template-hash.js";
|
|
20
19
|
import { NATIVE_WORKFLOW_ID, resolveWorkflowTemplate, } from "../utils/workflow-resolver.js";
|
|
@@ -26,141 +25,6 @@ import { getProjectCapability, getProjectCapabilityChoices, loadProjectCapabilit
|
|
|
26
25
|
import { collectCanonicalGenerationFiles, collectLegacyCstlLifecycleFiles, discoverCanonicalGenerationPaths, installedPactilePlatforms, materializeCanonicalGeneration, materializePreparedLegacyUserState, prepareLegacyCstlImport, readLegacyCstlVersion, runLifecycleCommand, seedCanonicalBuildRoot, } from "../pactile/lifecycle/index.js";
|
|
27
26
|
import { InstallStateStore } from "../pactile/runtime/stores.js";
|
|
28
27
|
import { inspectLegacyInitContext, legacyImportPreparedMessage, } from "../pactile/compat/init-context.js";
|
|
29
|
-
const MIN_PYTHON_MAJOR = 3;
|
|
30
|
-
const MIN_PYTHON_MINOR = 9;
|
|
31
|
-
const PYTHON_VERSION_RE = /Python (\d+)\.(\d+)/;
|
|
32
|
-
export function isSupportedPythonVersion(versionOutput) {
|
|
33
|
-
const match = versionOutput.match(PYTHON_VERSION_RE);
|
|
34
|
-
if (!match)
|
|
35
|
-
return false;
|
|
36
|
-
const major = Number(match[1]);
|
|
37
|
-
const minor = Number(match[2]);
|
|
38
|
-
return (major > MIN_PYTHON_MAJOR ||
|
|
39
|
-
(major === MIN_PYTHON_MAJOR && minor >= MIN_PYTHON_MINOR));
|
|
40
|
-
}
|
|
41
|
-
function detectPythonVersion(command) {
|
|
42
|
-
try {
|
|
43
|
-
return execSync(`${command} --version`, {
|
|
44
|
-
encoding: "utf-8",
|
|
45
|
-
stdio: "pipe",
|
|
46
|
-
}).trim();
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
const code = err?.code;
|
|
50
|
-
if (code === "EPERM" || code === "EACCES") {
|
|
51
|
-
return "sandbox-restricted";
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
export function requireSupportedPython(command) {
|
|
57
|
-
// Final escape hatch — set when the user knows python3 is on PATH but
|
|
58
|
-
// the probe keeps failing for environment-specific reasons.
|
|
59
|
-
if (readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.skipPythonCheck) === "1") {
|
|
60
|
-
return `version check skipped (PACTILE_SKIP_PYTHON_CHECK=1)`;
|
|
61
|
-
}
|
|
62
|
-
const versionOutput = detectPythonVersion(command);
|
|
63
|
-
if (versionOutput === "sandbox-restricted") {
|
|
64
|
-
console.warn(chalk.yellow(`⚠ Python version check skipped — sandboxed environment blocked ` +
|
|
65
|
-
`child_process spawn (EPERM/EACCES). Assuming "${command}" is on ` +
|
|
66
|
-
`PATH. If init fails later, re-run on the host or set ` +
|
|
67
|
-
`PACTILE_SKIP_PYTHON_CHECK=1.`));
|
|
68
|
-
return `version unknown (sandbox-restricted)`;
|
|
69
|
-
}
|
|
70
|
-
if (!versionOutput) {
|
|
71
|
-
throw new Error(`Python command "${command}" not found. Pactile init requires Python ≥ 3.9.`);
|
|
72
|
-
}
|
|
73
|
-
if (!isSupportedPythonVersion(versionOutput)) {
|
|
74
|
-
throw new Error(`${versionOutput} detected via "${command}", but Pactile init requires Python ≥ 3.9.`);
|
|
75
|
-
}
|
|
76
|
-
return versionOutput;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Candidate Python command list per platform.
|
|
80
|
-
*
|
|
81
|
-
* Windows: `python` is the usual python.org installer choice, but Microsoft
|
|
82
|
-
* Store ships `python3`, and the `py` launcher is `py -3`. We try all three
|
|
83
|
-
* before giving up — fixes #236 where users with only `python3` (not
|
|
84
|
-
* `python`) had `pactile init` fail outright.
|
|
85
|
-
*
|
|
86
|
-
* Non-Windows: `python3` is canonical; `python` is a fallback for systems
|
|
87
|
-
* where Python 3 is the only Python and is named `python` (some Arch
|
|
88
|
-
* configs, conda envs).
|
|
89
|
-
*/
|
|
90
|
-
const PYTHON_CANDIDATES = {
|
|
91
|
-
win32: ["python", "python3", "py -3"],
|
|
92
|
-
other: ["python3", "python"],
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Detect a working Python ≥ 3.9 command on the host platform.
|
|
96
|
-
*
|
|
97
|
-
* Honors `PACTILE_PYTHON_CMD` (explicit override, no probe) and
|
|
98
|
-
* `PACTILE_SKIP_PYTHON_CHECK=1` (skip probe, trust platform default).
|
|
99
|
-
*
|
|
100
|
-
* Otherwise tries each candidate in `PYTHON_CANDIDATES` in order and returns
|
|
101
|
-
* the first whose `--version` matches `Python ≥ 3.9`. Caches the result via
|
|
102
|
-
* `setResolvedPythonCommand` so all downstream template / configurator
|
|
103
|
-
* writes pick up the resolved value.
|
|
104
|
-
*
|
|
105
|
-
* Throws a helpful, Windows-aware error if no candidate works.
|
|
106
|
-
*/
|
|
107
|
-
export function resolveSupportedPython() {
|
|
108
|
-
// Explicit override — user knows their environment.
|
|
109
|
-
const override = readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.pythonCommand)?.trim();
|
|
110
|
-
if (override) {
|
|
111
|
-
setResolvedPythonCommand(override);
|
|
112
|
-
return { command: override, version: "set via PACTILE_PYTHON_CMD" };
|
|
113
|
-
}
|
|
114
|
-
// Skip probe entirely.
|
|
115
|
-
if (readPactileEnvironment(PACTILE_ENVIRONMENT_KEYS.skipPythonCheck) === "1") {
|
|
116
|
-
const fallback = getPythonCommandForPlatform();
|
|
117
|
-
setResolvedPythonCommand(fallback);
|
|
118
|
-
return {
|
|
119
|
-
command: fallback,
|
|
120
|
-
version: "version check skipped (PACTILE_SKIP_PYTHON_CHECK=1)",
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
const candidates = process.platform === "win32"
|
|
124
|
-
? PYTHON_CANDIDATES.win32
|
|
125
|
-
: PYTHON_CANDIDATES.other;
|
|
126
|
-
const probeFailures = [];
|
|
127
|
-
for (const candidate of candidates) {
|
|
128
|
-
const probe = detectPythonVersion(candidate);
|
|
129
|
-
if (probe === "sandbox-restricted") {
|
|
130
|
-
console.warn(chalk.yellow(`⚠ Python version check skipped — sandboxed environment blocked ` +
|
|
131
|
-
`child_process spawn (EPERM/EACCES). Assuming "${candidate}" is ` +
|
|
132
|
-
`on PATH. If init fails later, re-run on the host or set ` +
|
|
133
|
-
`PACTILE_SKIP_PYTHON_CHECK=1.`));
|
|
134
|
-
setResolvedPythonCommand(candidate);
|
|
135
|
-
return {
|
|
136
|
-
command: candidate,
|
|
137
|
-
version: "version unknown (sandbox-restricted)",
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
if (!probe) {
|
|
141
|
-
probeFailures.push(`${candidate}: not found`);
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
if (!isSupportedPythonVersion(probe)) {
|
|
145
|
-
probeFailures.push(`${candidate}: ${probe} (< 3.9)`);
|
|
146
|
-
continue;
|
|
147
|
-
}
|
|
148
|
-
setResolvedPythonCommand(candidate);
|
|
149
|
-
return { command: candidate, version: probe };
|
|
150
|
-
}
|
|
151
|
-
const isWindows = process.platform === "win32";
|
|
152
|
-
const installHint = isWindows
|
|
153
|
-
? `Install Python ≥ 3.9 from https://www.python.org/downloads/windows/ — make sure ` +
|
|
154
|
-
`"Add Python to PATH" is checked in the installer. Or, if Python is ` +
|
|
155
|
-
`installed under a different name, set PACTILE_PYTHON_CMD=<your-cmd> ` +
|
|
156
|
-
`before re-running init (e.g. \`set PACTILE_PYTHON_CMD=py -3\`).`
|
|
157
|
-
: `Install Python ≥ 3.9 from https://www.python.org/downloads/ or via your ` +
|
|
158
|
-
`package manager. Or set PACTILE_PYTHON_CMD=<your-cmd> before re-running.`;
|
|
159
|
-
throw new Error(`No supported Python command found. Tried: ${candidates.join(", ")}.\n` +
|
|
160
|
-
`Probe results:\n ${probeFailures.join("\n ")}\n\n` +
|
|
161
|
-
`Pactile init requires Python ≥ 3.9. ${installHint}\n` +
|
|
162
|
-
`Last-resort escape hatch: set PACTILE_SKIP_PYTHON_CHECK=1 to skip the probe entirely.`);
|
|
163
|
-
}
|
|
164
28
|
// =============================================================================
|
|
165
29
|
// Bootstrap Task Creation
|
|
166
30
|
// =============================================================================
|
|
@@ -222,8 +86,7 @@ function writeTaskSkeleton(cwd, taskName, taskJson, prdContent) {
|
|
|
222
86
|
* Compute the bootstrap checklist items (previously stored as structured
|
|
223
87
|
* `subtasks: [{name, status}]` in task.json). Per task 04-21-task-schema-unify
|
|
224
88
|
* (D1), these live as markdown `- [ ]` items in prd.md instead, so task.json
|
|
225
|
-
* stays canonical with `subtasks: string[]` (child task dir names
|
|
226
|
-
* task_store.py).
|
|
89
|
+
* stays canonical with `subtasks: string[]` (child task dir names).
|
|
227
90
|
*/
|
|
228
91
|
function getBootstrapChecklistItems(projectType, packages) {
|
|
229
92
|
if (packages && packages.length > 0) {
|
|
@@ -253,25 +116,25 @@ function renderCapabilityReadinessSection(selectedCapabilities) {
|
|
|
253
116
|
return `- [ ] \`${capability.id}\` — ${capability.title}. Verify the generated MCP/config path is usable before claiming it in task evidence.`;
|
|
254
117
|
})
|
|
255
118
|
.join("\n");
|
|
256
|
-
return `
|
|
257
|
-
## Capability readiness (required before archive)
|
|
258
|
-
|
|
259
|
-
Init selected optional project capabilities for this repo. Treat them as
|
|
260
|
-
\`pending\` until you verify they work in this checkout.
|
|
261
|
-
|
|
262
|
-
${checklist}
|
|
263
|
-
|
|
264
|
-
- Read \`.pactile/capabilities.json\` / \`.pactile/capabilities.md\` and keep the
|
|
265
|
-
readiness state honest: \`pending\`, \`ready\`, or \`failed\`.
|
|
266
|
-
- For \`codebase-retrieval\`, verify \`.codegraph/\` exists (or initialize it)
|
|
267
|
-
and confirm the MCP path is usable. After the first index, CodeGraph's file
|
|
268
|
-
watcher auto-syncs later edits; you do not need to re-run full indexing for
|
|
269
|
-
every code change.
|
|
270
|
-
- If a capability cannot be made ready, record the failure and fallback path in
|
|
271
|
-
\`verify.md\` before archiving bootstrap.
|
|
272
|
-
- Validation entrypoint: \`pactile capability-smoke --write-status\`
|
|
273
|
-
|
|
274
|
-
---
|
|
119
|
+
return `
|
|
120
|
+
## Capability readiness (required before archive)
|
|
121
|
+
|
|
122
|
+
Init selected optional project capabilities for this repo. Treat them as
|
|
123
|
+
\`pending\` until you verify they work in this checkout.
|
|
124
|
+
|
|
125
|
+
${checklist}
|
|
126
|
+
|
|
127
|
+
- Read \`.pactile/capabilities.json\` / \`.pactile/capabilities.md\` and keep the
|
|
128
|
+
readiness state honest: \`pending\`, \`ready\`, or \`failed\`.
|
|
129
|
+
- For \`codebase-retrieval\`, verify \`.codegraph/\` exists (or initialize it)
|
|
130
|
+
and confirm the MCP path is usable. After the first index, CodeGraph's file
|
|
131
|
+
watcher auto-syncs later edits; you do not need to re-run full indexing for
|
|
132
|
+
every code change.
|
|
133
|
+
- If a capability cannot be made ready, record the failure and fallback path in
|
|
134
|
+
\`verify.md\` before archiving bootstrap.
|
|
135
|
+
- Validation entrypoint: \`pactile capability-smoke --write-status\`
|
|
136
|
+
|
|
137
|
+
---
|
|
275
138
|
`;
|
|
276
139
|
}
|
|
277
140
|
function getBootstrapRelatedFiles(projectType, packages) {
|
|
@@ -286,145 +149,146 @@ function getBootstrapRelatedFiles(projectType, packages) {
|
|
|
286
149
|
}
|
|
287
150
|
return [".pactile/spec/backend/", ".pactile/spec/frontend/"];
|
|
288
151
|
}
|
|
289
|
-
function getBootstrapPrdContent(projectType,
|
|
152
|
+
function getBootstrapPrdContent(projectType, selectedCapabilities, packages) {
|
|
290
153
|
const checklistItems = getBootstrapChecklistItems(projectType, packages);
|
|
291
154
|
const checklistMarkdown = checklistItems
|
|
292
155
|
.map((item) => `- [ ] ${item}`)
|
|
293
156
|
.join("\n");
|
|
294
|
-
const header = `# Bootstrap Task: Fill Project Development Guidelines
|
|
295
|
-
|
|
296
|
-
**You (the AI) are running this task. The developer does not read this file.**
|
|
297
|
-
|
|
298
|
-
The developer just ran \`pactile init\` on this project for the first time.
|
|
299
|
-
\`.pactile/\` now exists with empty spec scaffolding, and this bootstrap task
|
|
300
|
-
exists under \`.pactile/tasks/\`. When they want to work on it, they should start
|
|
301
|
-
this task from a session that provides Pactile session identity.
|
|
302
|
-
|
|
303
|
-
**Your job**: help them populate \`.pactile/spec/\` with the team's real
|
|
304
|
-
coding conventions. Every future AI session — this project's
|
|
305
|
-
\`pactile-implement\` and \`pactile-check\` sub-agents — auto-loads spec files
|
|
306
|
-
listed in per-task jsonl manifests. Empty spec = sub-agents write generic
|
|
307
|
-
code. Real spec = sub-agents match the team's actual patterns.
|
|
308
|
-
|
|
309
|
-
Don't dump instructions. Open with a short greeting, figure out if the repo
|
|
310
|
-
has any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md, etc.), and drive
|
|
311
|
-
the rest conversationally.
|
|
312
|
-
|
|
313
|
-
---
|
|
314
|
-
|
|
315
|
-
## Status (update the checkboxes as you complete each item)
|
|
316
|
-
|
|
317
|
-
${checklistMarkdown}
|
|
318
|
-
|
|
319
|
-
---
|
|
320
|
-
|
|
321
|
-
${renderCapabilityReadinessSection(selectedCapabilities)}
|
|
322
|
-
|
|
323
|
-
## Spec files to populate
|
|
157
|
+
const header = `# Bootstrap Task: Fill Project Development Guidelines
|
|
158
|
+
|
|
159
|
+
**You (the AI) are running this task. The developer does not read this file.**
|
|
160
|
+
|
|
161
|
+
The developer just ran \`pactile init\` on this project for the first time.
|
|
162
|
+
\`.pactile/\` now exists with empty spec scaffolding, and this bootstrap task
|
|
163
|
+
exists under \`.pactile/tasks/\`. When they want to work on it, they should start
|
|
164
|
+
this task from a session that provides Pactile session identity.
|
|
165
|
+
|
|
166
|
+
**Your job**: help them populate \`.pactile/spec/\` with the team's real
|
|
167
|
+
coding conventions. Every future AI session — this project's
|
|
168
|
+
\`pactile-implement\` and \`pactile-check\` sub-agents — auto-loads spec files
|
|
169
|
+
listed in per-task jsonl manifests. Empty spec = sub-agents write generic
|
|
170
|
+
code. Real spec = sub-agents match the team's actual patterns.
|
|
171
|
+
|
|
172
|
+
Don't dump instructions. Open with a short greeting, figure out if the repo
|
|
173
|
+
has any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md, etc.), and drive
|
|
174
|
+
the rest conversationally.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Status (update the checkboxes as you complete each item)
|
|
179
|
+
|
|
180
|
+
${checklistMarkdown}
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
${renderCapabilityReadinessSection(selectedCapabilities)}
|
|
185
|
+
|
|
186
|
+
## Spec files to populate
|
|
324
187
|
`;
|
|
325
|
-
const backendSection = `
|
|
326
|
-
|
|
327
|
-
### Backend guidelines
|
|
328
|
-
|
|
329
|
-
| File | What to document |
|
|
330
|
-
|------|------------------|
|
|
331
|
-
| \`.pactile/spec/backend/directory-structure.md\` | Where different file types go (routes, services, utils) |
|
|
332
|
-
| \`.pactile/spec/backend/database-guidelines.md\` | ORM, migrations, query patterns, naming conventions |
|
|
333
|
-
| \`.pactile/spec/backend/error-handling.md\` | How errors are caught, logged, and returned |
|
|
334
|
-
| \`.pactile/spec/backend/logging-guidelines.md\` | Log levels, format, what to log |
|
|
335
|
-
| \`.pactile/spec/backend/quality-guidelines.md\` | Code review standards, testing requirements |
|
|
188
|
+
const backendSection = `
|
|
189
|
+
|
|
190
|
+
### Backend guidelines
|
|
191
|
+
|
|
192
|
+
| File | What to document |
|
|
193
|
+
|------|------------------|
|
|
194
|
+
| \`.pactile/spec/backend/directory-structure.md\` | Where different file types go (routes, services, utils) |
|
|
195
|
+
| \`.pactile/spec/backend/database-guidelines.md\` | ORM, migrations, query patterns, naming conventions |
|
|
196
|
+
| \`.pactile/spec/backend/error-handling.md\` | How errors are caught, logged, and returned |
|
|
197
|
+
| \`.pactile/spec/backend/logging-guidelines.md\` | Log levels, format, what to log |
|
|
198
|
+
| \`.pactile/spec/backend/quality-guidelines.md\` | Code review standards, testing requirements |
|
|
336
199
|
`;
|
|
337
|
-
const frontendSection = `
|
|
338
|
-
|
|
339
|
-
### Frontend guidelines
|
|
340
|
-
|
|
341
|
-
| File | What to document |
|
|
342
|
-
|------|------------------|
|
|
343
|
-
| \`.pactile/spec/frontend/directory-structure.md\` | Component/page/hook organization |
|
|
344
|
-
| \`.pactile/spec/frontend/component-guidelines.md\` | Component patterns, props conventions |
|
|
345
|
-
| \`.pactile/spec/frontend/hook-guidelines.md\` | Custom hook naming, patterns |
|
|
346
|
-
| \`.pactile/spec/frontend/state-management.md\` | State library, patterns, what goes where |
|
|
347
|
-
| \`.pactile/spec/frontend/type-safety.md\` | TypeScript conventions, type organization |
|
|
348
|
-
| \`.pactile/spec/frontend/quality-guidelines.md\` | Linting, testing, accessibility |
|
|
200
|
+
const frontendSection = `
|
|
201
|
+
|
|
202
|
+
### Frontend guidelines
|
|
203
|
+
|
|
204
|
+
| File | What to document |
|
|
205
|
+
|------|------------------|
|
|
206
|
+
| \`.pactile/spec/frontend/directory-structure.md\` | Component/page/hook organization |
|
|
207
|
+
| \`.pactile/spec/frontend/component-guidelines.md\` | Component patterns, props conventions |
|
|
208
|
+
| \`.pactile/spec/frontend/hook-guidelines.md\` | Custom hook naming, patterns |
|
|
209
|
+
| \`.pactile/spec/frontend/state-management.md\` | State library, patterns, what goes where |
|
|
210
|
+
| \`.pactile/spec/frontend/type-safety.md\` | TypeScript conventions, type organization |
|
|
211
|
+
| \`.pactile/spec/frontend/quality-guidelines.md\` | Linting, testing, accessibility |
|
|
349
212
|
`;
|
|
350
|
-
const footer = `
|
|
351
|
-
|
|
352
|
-
### Thinking guides (already populated)
|
|
353
|
-
|
|
354
|
-
\`.pactile/spec/guides/\` contains general thinking guides pre-filled with
|
|
355
|
-
best practices. Customize only if something clearly doesn't fit this project.
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## How to fill the spec
|
|
360
|
-
|
|
361
|
-
### Step 1: Import from existing convention files first (preferred)
|
|
362
|
-
|
|
363
|
-
Search the repo for existing convention docs. If any exist, read them and
|
|
364
|
-
extract the relevant rules into the matching \`.pactile/spec/\` files —
|
|
365
|
-
usually much faster than documenting from scratch.
|
|
366
|
-
|
|
367
|
-
| File / Directory | Notes |
|
|
368
|
-
|------|------|
|
|
369
|
-
| \`AGENTS.md\` | Agent entry / managed instructions |
|
|
370
|
-
| \`.cursorrules\` | Legacy Cursor rules file |
|
|
371
|
-
| \`.cursor/rules/*.mdc\` | Cursor rules directory |
|
|
372
|
-
| \`CONTRIBUTING.md\` | General project conventions |
|
|
373
|
-
| \`.editorconfig\` | Editor formatting rules |
|
|
374
|
-
|
|
375
|
-
### Step 2: Analyze the codebase for anything not covered by existing docs
|
|
376
|
-
|
|
377
|
-
Scan real code to discover patterns. Before writing each spec file:
|
|
378
|
-
- Find 2-3 real examples of each pattern in the codebase.
|
|
379
|
-
- Reference real file paths (not hypothetical ones).
|
|
380
|
-
- Document anti-patterns the team clearly avoids.
|
|
381
|
-
|
|
382
|
-
### Step 3: Document reality, not ideals
|
|
383
|
-
|
|
384
|
-
**Critical**: write what the code *actually does*, not what it should do.
|
|
385
|
-
Sub-agents match the spec, so aspirational patterns that don't exist in the
|
|
386
|
-
codebase will cause sub-agents to write code that looks out of place.
|
|
387
|
-
|
|
388
|
-
If the team has known tech debt, document the current state — improvement
|
|
389
|
-
is a separate conversation, not a bootstrap concern.
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
## Quick explainer of the runtime (share when they ask "why do we need spec at all")
|
|
394
|
-
|
|
395
|
-
- Every AI coding task spawns two sub-agents: \`pactile-implement\` (writes
|
|
396
|
-
code) and \`pactile-check\` (verifies quality).
|
|
397
|
-
- Each task has \`implement.jsonl\` / \`check.jsonl\` manifests listing which
|
|
398
|
-
spec files to load.
|
|
399
|
-
- The platform hook auto-injects those spec files + the task's \`prd.md\`
|
|
400
|
-
into every sub-agent prompt, so the sub-agent codes/reviews per team
|
|
401
|
-
conventions without anyone pasting them manually.
|
|
402
|
-
- Source of truth: \`.pactile/spec/\`. That's why filling it well now pays
|
|
403
|
-
off forever.
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## Completion
|
|
408
|
-
|
|
409
|
-
When the developer confirms the checklist items above are done with real
|
|
410
|
-
examples (not placeholders), guide them to run:
|
|
411
|
-
|
|
412
|
-
\`\`\`bash
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
213
|
+
const footer = `
|
|
214
|
+
|
|
215
|
+
### Thinking guides (already populated)
|
|
216
|
+
|
|
217
|
+
\`.pactile/spec/guides/\` contains general thinking guides pre-filled with
|
|
218
|
+
best practices. Customize only if something clearly doesn't fit this project.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## How to fill the spec
|
|
223
|
+
|
|
224
|
+
### Step 1: Import from existing convention files first (preferred)
|
|
225
|
+
|
|
226
|
+
Search the repo for existing convention docs. If any exist, read them and
|
|
227
|
+
extract the relevant rules into the matching \`.pactile/spec/\` files —
|
|
228
|
+
usually much faster than documenting from scratch.
|
|
229
|
+
|
|
230
|
+
| File / Directory | Notes |
|
|
231
|
+
|------|------|
|
|
232
|
+
| \`AGENTS.md\` | Agent entry / managed instructions |
|
|
233
|
+
| \`.cursorrules\` | Legacy Cursor rules file |
|
|
234
|
+
| \`.cursor/rules/*.mdc\` | Cursor rules directory |
|
|
235
|
+
| \`CONTRIBUTING.md\` | General project conventions |
|
|
236
|
+
| \`.editorconfig\` | Editor formatting rules |
|
|
237
|
+
|
|
238
|
+
### Step 2: Analyze the codebase for anything not covered by existing docs
|
|
239
|
+
|
|
240
|
+
Scan real code to discover patterns. Before writing each spec file:
|
|
241
|
+
- Find 2-3 real examples of each pattern in the codebase.
|
|
242
|
+
- Reference real file paths (not hypothetical ones).
|
|
243
|
+
- Document anti-patterns the team clearly avoids.
|
|
244
|
+
|
|
245
|
+
### Step 3: Document reality, not ideals
|
|
246
|
+
|
|
247
|
+
**Critical**: write what the code *actually does*, not what it should do.
|
|
248
|
+
Sub-agents match the spec, so aspirational patterns that don't exist in the
|
|
249
|
+
codebase will cause sub-agents to write code that looks out of place.
|
|
250
|
+
|
|
251
|
+
If the team has known tech debt, document the current state — improvement
|
|
252
|
+
is a separate conversation, not a bootstrap concern.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Quick explainer of the runtime (share when they ask "why do we need spec at all")
|
|
257
|
+
|
|
258
|
+
- Every AI coding task spawns two sub-agents: \`pactile-implement\` (writes
|
|
259
|
+
code) and \`pactile-check\` (verifies quality).
|
|
260
|
+
- Each task has \`implement.jsonl\` / \`check.jsonl\` manifests listing which
|
|
261
|
+
spec files to load.
|
|
262
|
+
- The platform hook auto-injects those spec files + the task's \`prd.md\`
|
|
263
|
+
into every sub-agent prompt, so the sub-agent codes/reviews per team
|
|
264
|
+
conventions without anyone pasting them manually.
|
|
265
|
+
- Source of truth: \`.pactile/spec/\`. That's why filling it well now pays
|
|
266
|
+
off forever.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Completion
|
|
271
|
+
|
|
272
|
+
When the developer confirms the checklist items above are done with real
|
|
273
|
+
examples (not placeholders), guide them to run:
|
|
274
|
+
|
|
275
|
+
\`\`\`bash
|
|
276
|
+
pactile task archive 00-bootstrap-guidelines --check
|
|
277
|
+
pactile task archive 00-bootstrap-guidelines
|
|
278
|
+
\`\`\`
|
|
279
|
+
|
|
280
|
+
After archive, every new developer who joins this project will get a
|
|
281
|
+
\`00-join-<slug>\` onboarding task instead of this bootstrap task.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Suggested opening line
|
|
286
|
+
|
|
287
|
+
"Welcome to Pactile! Your init just set me up to help you fill the project
|
|
288
|
+
spec — a one-time setup so every future AI session follows the team's
|
|
289
|
+
conventions instead of writing generic code. Before we start, do you have
|
|
290
|
+
any existing convention docs (AGENTS.md, .cursorrules, CONTRIBUTING.md,
|
|
291
|
+
etc.) I can pull from, or should I scan the codebase from scratch?"
|
|
428
292
|
`;
|
|
429
293
|
let content = header;
|
|
430
294
|
if (packages && packages.length > 0) {
|
|
@@ -480,9 +344,9 @@ function getBootstrapTaskJson(developer, projectType, packages) {
|
|
|
480
344
|
/**
|
|
481
345
|
* Create bootstrap task for first-time setup
|
|
482
346
|
*/
|
|
483
|
-
function createBootstrapTask(cwd, developer,
|
|
347
|
+
function createBootstrapTask(cwd, developer, projectType, selectedCapabilities, packages) {
|
|
484
348
|
const taskJson = getBootstrapTaskJson(developer, projectType, packages);
|
|
485
|
-
const prdContent = getBootstrapPrdContent(projectType,
|
|
349
|
+
const prdContent = getBootstrapPrdContent(projectType, selectedCapabilities, packages);
|
|
486
350
|
return writeTaskSkeleton(cwd, BOOTSTRAP_TASK_NAME, taskJson, prdContent);
|
|
487
351
|
}
|
|
488
352
|
// =============================================================================
|
|
@@ -513,7 +377,7 @@ function getJoinerTaskJson(developer, taskName) {
|
|
|
513
377
|
* PRD content for joiner onboarding. Kept concise (~80 lines) — deeper
|
|
514
378
|
* guidance lives in skills and docs.
|
|
515
379
|
*/
|
|
516
|
-
function getJoinerPrdContent(developer,
|
|
380
|
+
function getJoinerPrdContent(developer, selectedCapabilities) {
|
|
517
381
|
const slug = slugifyDeveloperName(developer);
|
|
518
382
|
const selectedCapabilityChecklist = selectedCapabilities
|
|
519
383
|
.map((id) => {
|
|
@@ -523,129 +387,115 @@ function getJoinerPrdContent(developer, pythonCmd, selectedCapabilities) {
|
|
|
523
387
|
.join("\n");
|
|
524
388
|
let capabilitySection = "";
|
|
525
389
|
if (selectedCapabilities.length > 0) {
|
|
526
|
-
capabilitySection = `
|
|
527
|
-
### 5. Re-verify selected project capabilities
|
|
528
|
-
|
|
529
|
-
This repo has capability selections recorded in \`.pactile/capabilities.json\`.
|
|
530
|
-
Before they rely on MCP-backed behavior, remind them to check the selected set:
|
|
531
|
-
|
|
532
|
-
${selectedCapabilityChecklist}
|
|
533
|
-
|
|
534
|
-
- If a capability is not \`ready\`, have them re-run the local verification path
|
|
535
|
-
instead of assuming the previous machine's setup carries over.
|
|
536
|
-
|
|
537
|
-
---
|
|
390
|
+
capabilitySection = `
|
|
391
|
+
### 5. Re-verify selected project capabilities
|
|
392
|
+
|
|
393
|
+
This repo has capability selections recorded in \`.pactile/capabilities.json\`.
|
|
394
|
+
Before they rely on MCP-backed behavior, remind them to check the selected set:
|
|
395
|
+
|
|
396
|
+
${selectedCapabilityChecklist}
|
|
397
|
+
|
|
398
|
+
- If a capability is not \`ready\`, have them re-run the local verification path
|
|
399
|
+
instead of assuming the previous machine's setup carries over.
|
|
400
|
+
|
|
401
|
+
---
|
|
538
402
|
`;
|
|
539
403
|
}
|
|
540
|
-
return `# Joiner Onboarding Task
|
|
541
|
-
|
|
542
|
-
**You (the AI) are running this task. The developer does not read this file.**
|
|
543
|
-
|
|
544
|
-
\`${developer}\` just ran \`pactile init\` on a fresh clone, saw "Developer
|
|
545
|
-
initialized", and will now start asking you questions in chat. This joiner task
|
|
546
|
-
exists under \`.pactile/tasks/\`; when they want to work on it, they should
|
|
547
|
-
select it from a session that provides Pactile session identity.
|
|
548
|
-
|
|
549
|
-
Your job is to orient them to Pactile. Don't dump all of this at them — open
|
|
550
|
-
with a short greeting, ask where they want to start, and fill in the rest as
|
|
551
|
-
they engage.
|
|
552
|
-
|
|
553
|
-
---
|
|
554
|
-
|
|
555
|
-
## Topics to cover (adapt order to their questions)
|
|
556
|
-
|
|
557
|
-
### 1. What Pactile is + the workflow
|
|
558
|
-
|
|
559
|
-
Pactile is a governed capability workspace for
|
|
560
|
-
agents consistent with project-specific conventions instead of writing generic
|
|
561
|
-
code every session.
|
|
562
|
-
|
|
563
|
-
- **Human lifecycle**: Open → Define → Approve → Execute → Verify →
|
|
564
|
-
(Integrate? when parent-child) → Close. Kernel writes that state.
|
|
565
|
-
\`.pactile/workflow.md\` is a human overview, **not runtime SSOT**.
|
|
566
|
-
- **Task files** live under \`.pactile/tasks/\`. \`status\` is a projection, not
|
|
567
|
-
the only truth.
|
|
568
|
-
- **
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
reasonable back-and-forth), guide them to run:
|
|
636
|
-
|
|
637
|
-
\`\`\`bash
|
|
638
|
-
${pythonCmd} ./.pactile/scripts/task.py archive 00-join-${slug}
|
|
639
|
-
\`\`\`
|
|
640
|
-
|
|
641
|
-
---
|
|
642
|
-
|
|
643
|
-
## Suggested opening line
|
|
644
|
-
|
|
645
|
-
"Welcome! Your \`pactile init\` set me up to onboard you to this project. I
|
|
646
|
-
can walk you through the workflow, show you the runtime mechanics under the
|
|
647
|
-
hood, summarize the team's spec, or jump to what you're already curious about
|
|
648
|
-
— which would you prefer?"
|
|
404
|
+
return `# Joiner Onboarding Task
|
|
405
|
+
|
|
406
|
+
**You (the AI) are running this task. The developer does not read this file.**
|
|
407
|
+
|
|
408
|
+
\`${developer}\` just ran \`pactile init\` on a fresh clone, saw "Developer
|
|
409
|
+
initialized", and will now start asking you questions in chat. This joiner task
|
|
410
|
+
exists under \`.pactile/tasks/\`; when they want to work on it, they should
|
|
411
|
+
select it from a session that provides Pactile session identity.
|
|
412
|
+
|
|
413
|
+
Your job is to orient them to Pactile. Don't dump all of this at them — open
|
|
414
|
+
with a short greeting, ask where they want to start, and fill in the rest as
|
|
415
|
+
they engage.
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## Topics to cover (adapt order to their questions)
|
|
420
|
+
|
|
421
|
+
### 1. What Pactile is + the workflow
|
|
422
|
+
|
|
423
|
+
Pactile is a governed capability workspace for Codex that keeps AI
|
|
424
|
+
agents consistent with project-specific conventions instead of writing generic
|
|
425
|
+
code every session.
|
|
426
|
+
|
|
427
|
+
- **Human lifecycle**: Open → Define → Approve → Execute → Verify →
|
|
428
|
+
(Integrate? when parent-child) → Close. Kernel writes that state.
|
|
429
|
+
\`.pactile/workflow.md\` is a human overview, **not runtime SSOT**.
|
|
430
|
+
- **Task files** live under \`.pactile/tasks/\`. \`status\` is a projection, not
|
|
431
|
+
the only truth.
|
|
432
|
+
- **Codex session**: read the Task record, project instructions, and current
|
|
433
|
+
Evidence before resuming. The Task record remains durable authority.
|
|
434
|
+
|
|
435
|
+
### 2. Runtime mechanics (explain when they ask "how does it know what to do")
|
|
436
|
+
|
|
437
|
+
- **Context**: load Kernel / Dashboard and the selected Task's \`prd.md\`
|
|
438
|
+
plus recent activity. Do not treat a generated phase index as runtime
|
|
439
|
+
authority.
|
|
440
|
+
- **Coordination**: \`pactile codex\` records native desktop task requests and
|
|
441
|
+
receipts; the App task invokes its native tools. \`pactile pi\` dispatches
|
|
442
|
+
approved Execute work through Pi RPC.
|
|
443
|
+
|
|
444
|
+
File layout (mention when they ask "where does what live"):
|
|
445
|
+
- \`.pactile/.runtime/sessions/<session>.json\` — live-session selected-task state, gitignored
|
|
446
|
+
- \`.pactile/tasks/<task>/{implement,check}.jsonl\` — per-task context manifests
|
|
447
|
+
- \`.pactile/spec/\` — project-wide conventions (source of truth)
|
|
448
|
+
- \`.pactile/workspace/${developer}/journal-*.md\` — their session log,
|
|
449
|
+
rotated at ~2000 lines
|
|
450
|
+
|
|
451
|
+
### 3. This project's actual conventions
|
|
452
|
+
|
|
453
|
+
- Summarize \`.pactile/spec/\` for them — what coding conventions this
|
|
454
|
+
specific team enforces.
|
|
455
|
+
- Point at the last 5 entries in \`.pactile/tasks/archive/\` as a rhythm
|
|
456
|
+
example of how people actually work here. **If archive is empty** (the
|
|
457
|
+
project just started), skip this — don't invent examples.
|
|
458
|
+
- Not your job in this onboarding to teach them the business code itself —
|
|
459
|
+
the README and their teammates handle that.
|
|
460
|
+
|
|
461
|
+
### 4. Their assigned work
|
|
462
|
+
|
|
463
|
+
- Check if \`.pactile/workspace/${developer}/\` already exists — if yes, it's
|
|
464
|
+
their journal from another machine and worth mentioning.
|
|
465
|
+
- Run \`pactile task list --assignee "${developer}"\` to
|
|
466
|
+
show tasks assigned to them. (Quote the name if it contains spaces.)
|
|
467
|
+
- Remind them to inspect assigned Tasks at the start of each session.
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
${capabilitySection}
|
|
472
|
+
|
|
473
|
+
## Optional: walk through a small task end-to-end
|
|
474
|
+
|
|
475
|
+
If they want to practice before touching real work, offer to pick a tiny
|
|
476
|
+
P3 task or a typo fix and run the full cycle together: define → approve →
|
|
477
|
+
execute → verify → close.
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Completion
|
|
482
|
+
|
|
483
|
+
When they feel oriented (or after you've covered the four topics with
|
|
484
|
+
reasonable back-and-forth), guide them to run:
|
|
485
|
+
|
|
486
|
+
\`\`\`bash
|
|
487
|
+
pactile task archive 00-join-${slug} --check
|
|
488
|
+
pactile task archive 00-join-${slug}
|
|
489
|
+
\`\`\`
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Suggested opening line
|
|
494
|
+
|
|
495
|
+
"Welcome! Your \`pactile init\` set me up to onboard you to this project. I
|
|
496
|
+
can walk you through the workflow, show you the runtime mechanics under the
|
|
497
|
+
hood, summarize the team's spec, or jump to what you're already curious about
|
|
498
|
+
— which would you prefer?"
|
|
649
499
|
`;
|
|
650
500
|
}
|
|
651
501
|
/**
|
|
@@ -653,24 +503,24 @@ hood, summarize the team's spec, or jump to what you're already curious about
|
|
|
653
503
|
* project. Task name is slugified to be filesystem-safe for arbitrary
|
|
654
504
|
* developer names (spaces, Unicode, punctuation).
|
|
655
505
|
*/
|
|
656
|
-
function createJoinerOnboardingTask(cwd, developer
|
|
506
|
+
function createJoinerOnboardingTask(cwd, developer) {
|
|
657
507
|
const slug = slugifyDeveloperName(developer);
|
|
658
508
|
const taskName = `00-join-${slug}`;
|
|
659
509
|
const taskJson = getJoinerTaskJson(developer, taskName);
|
|
660
|
-
const prdContent = getJoinerPrdContent(developer,
|
|
510
|
+
const prdContent = getJoinerPrdContent(developer, loadProjectCapabilities(cwd));
|
|
661
511
|
return writeTaskSkeleton(cwd, taskName, taskJson, prdContent);
|
|
662
512
|
}
|
|
663
513
|
/**
|
|
664
514
|
* Handle re-init when .pactile/ already exists.
|
|
665
515
|
* Returns true if handled (caller should return), false if user chose full re-init.
|
|
666
516
|
*/
|
|
667
|
-
async function handleReinit(cwd, options, developerName
|
|
517
|
+
async function handleReinit(cwd, options, developerName) {
|
|
668
518
|
const TOOLS = getPactileInitToolChoices();
|
|
669
519
|
const installState = new InstallStateStore(cwd).read();
|
|
670
520
|
const configuredPlatforms = new Set((installState?.state.installedAdapters ?? [])
|
|
671
521
|
.filter((adapter) => adapter.status === "active")
|
|
672
522
|
.map((adapter) => adapter.id.replace(/^adapter\./, ""))
|
|
673
|
-
.filter((platform) => platform === "
|
|
523
|
+
.filter((platform) => platform === "codex"));
|
|
674
524
|
const configuredNames = [...configuredPlatforms]
|
|
675
525
|
.map((id) => TOOLS.find((choice) => choice.platformId === id)?.name ?? id)
|
|
676
526
|
.join(", ");
|
|
@@ -683,7 +533,7 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
|
|
|
683
533
|
if (!doAddPlatforms && !doAddDeveloper) {
|
|
684
534
|
if (options.yes) {
|
|
685
535
|
console.log(chalk.gray(`Already initialized with: ${configuredNames}`));
|
|
686
|
-
console.log(chalk.gray("Use
|
|
536
|
+
console.log(chalk.gray("Use --codex or -u <name> to add a platform/developer."));
|
|
687
537
|
return true;
|
|
688
538
|
}
|
|
689
539
|
console.log(chalk.gray(`\n Already initialized with: ${configuredNames}\n`));
|
|
@@ -769,26 +619,21 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
|
|
|
769
619
|
}
|
|
770
620
|
}
|
|
771
621
|
// Capture pre-init state: if .developer did not exist before we ran
|
|
772
|
-
//
|
|
622
|
+
// the Node identity writer, this checkout had no identity → treat as a new
|
|
773
623
|
// joiner onboarding onto an existing Pactile project.
|
|
774
624
|
const hadDeveloperFileBefore = fs.existsSync(path.join(cwd, DIR_NAMES.WORKFLOW, FILE_NAMES.DEVELOPER));
|
|
775
625
|
try {
|
|
776
|
-
|
|
777
|
-
execSync(`${pythonCmd} "${scriptPath}" "${devName}"`, {
|
|
778
|
-
cwd,
|
|
779
|
-
stdio: "pipe",
|
|
780
|
-
});
|
|
626
|
+
initializeDeveloper(cwd, devName);
|
|
781
627
|
console.log(chalk.green(`✓ Developer "${devName}" initialized`));
|
|
782
628
|
}
|
|
783
|
-
catch {
|
|
784
|
-
console.log(chalk.yellow(
|
|
785
|
-
console.log(chalk.gray(` ${pythonCmd} .pactile/scripts/init_developer.py ${devName}`));
|
|
629
|
+
catch (err) {
|
|
630
|
+
console.log(chalk.yellow(`⚠ Could not initialize developer: ${err instanceof Error ? err.message : String(err)}`));
|
|
786
631
|
}
|
|
787
632
|
// Create joiner onboarding task for fresh checkouts (no prior .developer).
|
|
788
633
|
// Runs outside the init_developer try/catch so failures surface as warnings.
|
|
789
634
|
if (!hadDeveloperFileBefore) {
|
|
790
635
|
try {
|
|
791
|
-
if (!createJoinerOnboardingTask(cwd, devName
|
|
636
|
+
if (!createJoinerOnboardingTask(cwd, devName)) {
|
|
792
637
|
console.warn(chalk.yellow("⚠ Failed to create joiner onboarding task"));
|
|
793
638
|
}
|
|
794
639
|
}
|
|
@@ -800,19 +645,7 @@ async function handleReinit(cwd, options, developerName, pythonCmd) {
|
|
|
800
645
|
return true;
|
|
801
646
|
}
|
|
802
647
|
function getPactileInitToolChoices() {
|
|
803
|
-
return
|
|
804
|
-
...getInitToolChoices().map((choice) => ({
|
|
805
|
-
...choice,
|
|
806
|
-
key: choice.key,
|
|
807
|
-
platformId: choice.platformId,
|
|
808
|
-
})),
|
|
809
|
-
{
|
|
810
|
-
key: "codex",
|
|
811
|
-
name: "Codex (ChatGPT desktop app)",
|
|
812
|
-
defaultChecked: true,
|
|
813
|
-
platformId: "codex",
|
|
814
|
-
},
|
|
815
|
-
];
|
|
648
|
+
return getInitToolChoices();
|
|
816
649
|
}
|
|
817
650
|
/**
|
|
818
651
|
* Write monorepo package configuration to config.yaml (non-destructive patch).
|
|
@@ -897,7 +730,7 @@ export async function init(options) {
|
|
|
897
730
|
// Generate ASCII art banner dynamically using FIGlet "Rebel" font
|
|
898
731
|
const banner = figlet.textSync("Pactile", { font: "Rebel" });
|
|
899
732
|
console.log(chalk.cyan(`\n${banner.trimEnd()}`));
|
|
900
|
-
console.log(chalk.gray("\n
|
|
733
|
+
console.log(chalk.gray("\n Governed AI workflow for Codex\n"));
|
|
901
734
|
// Set up proxy before any network calls
|
|
902
735
|
const proxyUrl = setupProxy();
|
|
903
736
|
if (proxyUrl) {
|
|
@@ -940,7 +773,6 @@ export async function init(options) {
|
|
|
940
773
|
if (developerName) {
|
|
941
774
|
console.log(chalk.blue("👤 Developer:"), chalk.gray(developerName));
|
|
942
775
|
}
|
|
943
|
-
const { command: pythonCmd } = resolveSupportedPython();
|
|
944
776
|
// ==========================================================================
|
|
945
777
|
// Re-init fast path: skip full flow when .pactile/ already exists.
|
|
946
778
|
// ==========================================================================
|
|
@@ -955,7 +787,7 @@ export async function init(options) {
|
|
|
955
787
|
!options.force &&
|
|
956
788
|
!options.skipExisting &&
|
|
957
789
|
!tasksEmptyEarly) {
|
|
958
|
-
const reinitDone = await handleReinit(cwd, options, developerName
|
|
790
|
+
const reinitDone = await handleReinit(cwd, options, developerName);
|
|
959
791
|
if (reinitDone)
|
|
960
792
|
return;
|
|
961
793
|
// reinitDone === false means user chose "full re-initialize" → fall through
|
|
@@ -1132,7 +964,7 @@ export async function init(options) {
|
|
|
1132
964
|
tools = explicitTools;
|
|
1133
965
|
}
|
|
1134
966
|
else if (options.yes) {
|
|
1135
|
-
// No explicit tools + -y:
|
|
967
|
+
// No explicit tools + -y: use the active host default.
|
|
1136
968
|
tools = TOOLS.filter((t) => t.defaultChecked).map((t) => t.key);
|
|
1137
969
|
}
|
|
1138
970
|
else {
|
|
@@ -1595,17 +1427,14 @@ export async function init(options) {
|
|
|
1595
1427
|
// migration backup or prompt for a legacy transition that never existed.
|
|
1596
1428
|
writeWaveCConfirmed(cwd);
|
|
1597
1429
|
}
|
|
1598
|
-
// Initialize developer identity (silent - no output)
|
|
1430
|
+
// Initialize developer identity with Node (silent - no output).
|
|
1599
1431
|
if (developerName) {
|
|
1600
1432
|
try {
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
cwd,
|
|
1604
|
-
stdio: "pipe", // Silent
|
|
1605
|
-
});
|
|
1433
|
+
if (!readDeveloper(cwd))
|
|
1434
|
+
initializeDeveloper(cwd, developerName);
|
|
1606
1435
|
}
|
|
1607
1436
|
catch {
|
|
1608
|
-
//
|
|
1437
|
+
// Preserve init's best-effort identity creation boundary.
|
|
1609
1438
|
}
|
|
1610
1439
|
// Three-branch dispatch using flags captured at init() start (before
|
|
1611
1440
|
// createWorkflowStructure/init_developer ran, so they reflect the disk
|
|
@@ -1625,14 +1454,14 @@ export async function init(options) {
|
|
|
1625
1454
|
const tasksDir = path.join(cwd, PATHS.TASKS);
|
|
1626
1455
|
const tasksEmpty = !fs.existsSync(tasksDir) || fs.readdirSync(tasksDir).length === 0;
|
|
1627
1456
|
if ((isFirstInit && !importingCstl) || tasksEmpty) {
|
|
1628
|
-
const bootstrapCreated = createBootstrapTask(cwd, developerName,
|
|
1457
|
+
const bootstrapCreated = createBootstrapTask(cwd, developerName, projectType, selectedCapabilities, monorepoPackages);
|
|
1629
1458
|
if (bootstrapCreated) {
|
|
1630
1459
|
console.log(chalk.gray(`Next: complete ${BOOTSTRAP_TASK_NAME} to verify selected capabilities and fill the project spec.`));
|
|
1631
1460
|
}
|
|
1632
1461
|
}
|
|
1633
1462
|
else if (!hadDeveloperFileAtStart) {
|
|
1634
1463
|
try {
|
|
1635
|
-
if (!createJoinerOnboardingTask(cwd, developerName
|
|
1464
|
+
if (!createJoinerOnboardingTask(cwd, developerName)) {
|
|
1636
1465
|
console.warn(chalk.yellow("⚠ Failed to create joiner onboarding task"));
|
|
1637
1466
|
}
|
|
1638
1467
|
}
|