@blxzer/pactile 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +602 -0
- package/LICENSE +235 -0
- package/README.md +115 -0
- package/README.zh-CN.md +115 -0
- package/bin/compat-warning.js +11 -0
- package/bin/cstl.js +6 -0
- package/bin/pactile.js +3 -0
- package/bin/smart-search.js +38 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +362 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/capability-smoke.d.ts +24 -0
- package/dist/commands/capability-smoke.d.ts.map +1 -0
- package/dist/commands/capability-smoke.js +83 -0
- package/dist/commands/capability-smoke.js.map +1 -0
- package/dist/commands/channel/adapters/claude.d.ts +29 -0
- package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
- package/dist/commands/channel/adapters/claude.js +203 -0
- package/dist/commands/channel/adapters/claude.js.map +1 -0
- package/dist/commands/channel/adapters/codex.d.ts +85 -0
- package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
- package/dist/commands/channel/adapters/codex.js +505 -0
- package/dist/commands/channel/adapters/codex.js.map +1 -0
- package/dist/commands/channel/adapters/index.d.ts +84 -0
- package/dist/commands/channel/adapters/index.d.ts.map +1 -0
- package/dist/commands/channel/adapters/index.js +115 -0
- package/dist/commands/channel/adapters/index.js.map +1 -0
- package/dist/commands/channel/adapters/types.d.ts +33 -0
- package/dist/commands/channel/adapters/types.d.ts.map +1 -0
- package/dist/commands/channel/adapters/types.js +2 -0
- package/dist/commands/channel/adapters/types.js.map +1 -0
- package/dist/commands/channel/agent-loader.d.ts +32 -0
- package/dist/commands/channel/agent-loader.d.ts.map +1 -0
- package/dist/commands/channel/agent-loader.js +154 -0
- package/dist/commands/channel/agent-loader.js.map +1 -0
- package/dist/commands/channel/context-loader.d.ts +26 -0
- package/dist/commands/channel/context-loader.d.ts.map +1 -0
- package/dist/commands/channel/context-loader.js +290 -0
- package/dist/commands/channel/context-loader.js.map +1 -0
- package/dist/commands/channel/context.d.ts +16 -0
- package/dist/commands/channel/context.d.ts.map +1 -0
- package/dist/commands/channel/context.js +83 -0
- package/dist/commands/channel/context.js.map +1 -0
- package/dist/commands/channel/create.d.ts +27 -0
- package/dist/commands/channel/create.d.ts.map +1 -0
- package/dist/commands/channel/create.js +39 -0
- package/dist/commands/channel/create.js.map +1 -0
- package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
- package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
- package/dist/commands/channel/dev-parse-trace.js +70 -0
- package/dist/commands/channel/dev-parse-trace.js.map +1 -0
- package/dist/commands/channel/guard.d.ts +150 -0
- package/dist/commands/channel/guard.d.ts.map +1 -0
- package/dist/commands/channel/guard.js +475 -0
- package/dist/commands/channel/guard.js.map +1 -0
- package/dist/commands/channel/index.d.ts +3 -0
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +531 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/interrupt.d.ts +10 -0
- package/dist/commands/channel/interrupt.d.ts.map +1 -0
- package/dist/commands/channel/interrupt.js +22 -0
- package/dist/commands/channel/interrupt.js.map +1 -0
- package/dist/commands/channel/kill.d.ts +7 -0
- package/dist/commands/channel/kill.d.ts.map +1 -0
- package/dist/commands/channel/kill.js +121 -0
- package/dist/commands/channel/kill.js.map +1 -0
- package/dist/commands/channel/list.d.ts +17 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +233 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/messages.d.ts +15 -0
- package/dist/commands/channel/messages.d.ts.map +1 -0
- package/dist/commands/channel/messages.js +245 -0
- package/dist/commands/channel/messages.js.map +1 -0
- package/dist/commands/channel/rm.d.ts +27 -0
- package/dist/commands/channel/rm.d.ts.map +1 -0
- package/dist/commands/channel/rm.js +216 -0
- package/dist/commands/channel/rm.js.map +1 -0
- package/dist/commands/channel/run.d.ts +30 -0
- package/dist/commands/channel/run.d.ts.map +1 -0
- package/dist/commands/channel/run.js +130 -0
- package/dist/commands/channel/run.js.map +1 -0
- package/dist/commands/channel/send.d.ts +11 -0
- package/dist/commands/channel/send.d.ts.map +1 -0
- package/dist/commands/channel/send.js +24 -0
- package/dist/commands/channel/send.js.map +1 -0
- package/dist/commands/channel/spawn.d.ts +40 -0
- package/dist/commands/channel/spawn.d.ts.map +1 -0
- package/dist/commands/channel/spawn.js +242 -0
- package/dist/commands/channel/spawn.js.map +1 -0
- package/dist/commands/channel/store/events.d.ts +39 -0
- package/dist/commands/channel/store/events.d.ts.map +1 -0
- package/dist/commands/channel/store/events.js +87 -0
- package/dist/commands/channel/store/events.js.map +1 -0
- package/dist/commands/channel/store/filter.d.ts +3 -0
- package/dist/commands/channel/store/filter.d.ts.map +1 -0
- package/dist/commands/channel/store/filter.js +2 -0
- package/dist/commands/channel/store/filter.js.map +1 -0
- package/dist/commands/channel/store/lock.d.ts +23 -0
- package/dist/commands/channel/store/lock.d.ts.map +1 -0
- package/dist/commands/channel/store/lock.js +99 -0
- package/dist/commands/channel/store/lock.js.map +1 -0
- package/dist/commands/channel/store/paths.d.ts +63 -0
- package/dist/commands/channel/store/paths.d.ts.map +1 -0
- package/dist/commands/channel/store/paths.js +247 -0
- package/dist/commands/channel/store/paths.js.map +1 -0
- package/dist/commands/channel/store/schema.d.ts +27 -0
- package/dist/commands/channel/store/schema.d.ts.map +1 -0
- package/dist/commands/channel/store/schema.js +34 -0
- package/dist/commands/channel/store/schema.js.map +1 -0
- package/dist/commands/channel/store/thread-state.d.ts +5 -0
- package/dist/commands/channel/store/thread-state.d.ts.map +1 -0
- package/dist/commands/channel/store/thread-state.js +16 -0
- package/dist/commands/channel/store/thread-state.js.map +1 -0
- package/dist/commands/channel/store/watch.d.ts +19 -0
- package/dist/commands/channel/store/watch.d.ts.map +1 -0
- package/dist/commands/channel/store/watch.js +146 -0
- package/dist/commands/channel/store/watch.js.map +1 -0
- package/dist/commands/channel/supervisor/idle.d.ts +46 -0
- package/dist/commands/channel/supervisor/idle.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/idle.js +72 -0
- package/dist/commands/channel/supervisor/idle.js.map +1 -0
- package/dist/commands/channel/supervisor/inbox.d.ts +30 -0
- package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/inbox.js +160 -0
- package/dist/commands/channel/supervisor/inbox.js.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts +68 -0
- package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/shutdown.js +146 -0
- package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
- package/dist/commands/channel/supervisor/stdout.d.ts +51 -0
- package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/stdout.js +121 -0
- package/dist/commands/channel/supervisor/stdout.js.map +1 -0
- package/dist/commands/channel/supervisor/turns.d.ts +31 -0
- package/dist/commands/channel/supervisor/turns.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/turns.js +45 -0
- package/dist/commands/channel/supervisor/turns.js.map +1 -0
- package/dist/commands/channel/supervisor/warning.d.ts +48 -0
- package/dist/commands/channel/supervisor/warning.d.ts.map +1 -0
- package/dist/commands/channel/supervisor/warning.js +77 -0
- package/dist/commands/channel/supervisor/warning.js.map +1 -0
- package/dist/commands/channel/supervisor.d.ts +59 -0
- package/dist/commands/channel/supervisor.d.ts.map +1 -0
- package/dist/commands/channel/supervisor.js +345 -0
- package/dist/commands/channel/supervisor.js.map +1 -0
- package/dist/commands/channel/text-body.d.ts +13 -0
- package/dist/commands/channel/text-body.d.ts.map +1 -0
- package/dist/commands/channel/text-body.js +47 -0
- package/dist/commands/channel/text-body.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +39 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +106 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/channel/title.d.ts +12 -0
- package/dist/commands/channel/title.d.ts.map +1 -0
- package/dist/commands/channel/title.js +24 -0
- package/dist/commands/channel/title.js.map +1 -0
- package/dist/commands/channel/wait.d.ts +17 -0
- package/dist/commands/channel/wait.d.ts.map +1 -0
- package/dist/commands/channel/wait.js +75 -0
- package/dist/commands/channel/wait.js.map +1 -0
- package/dist/commands/detach.d.ts +7 -0
- package/dist/commands/detach.d.ts.map +1 -0
- package/dist/commands/detach.js +31 -0
- package/dist/commands/detach.js.map +1 -0
- package/dist/commands/init.d.ts +51 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1660 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/migrate.d.ts +10 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +38 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/purge.d.ts +9 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +29 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/rollback.d.ts +7 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +27 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/rollout.d.ts +34 -0
- package/dist/commands/rollout.d.ts.map +1 -0
- package/dist/commands/rollout.js +102 -0
- package/dist/commands/rollout.js.map +1 -0
- package/dist/commands/uninstall.d.ts +23 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +68 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +139 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +2459 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/upgrade.d.ts +28 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +84 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/validate-rules.d.ts +6 -0
- package/dist/commands/validate-rules.d.ts.map +1 -0
- package/dist/commands/validate-rules.js +33 -0
- package/dist/commands/validate-rules.js.map +1 -0
- package/dist/commands/workflow.d.ts +35 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +220 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/configurators/cursor.d.ts +21 -0
- package/dist/configurators/cursor.d.ts.map +1 -0
- package/dist/configurators/cursor.js +51 -0
- package/dist/configurators/cursor.js.map +1 -0
- package/dist/configurators/index.d.ts +68 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +170 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/shared.d.ts +200 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +602 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/workflow.d.ts +45 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +256 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/constants/paths.d.ts +93 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +106 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/version.d.ts +9 -0
- package/dist/constants/version.d.ts.map +1 -0
- package/dist/constants/version.js +15 -0
- package/dist/constants/version.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +62 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +187 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.0.json +9 -0
- package/dist/migrations/manifests/0.1.1.json +9 -0
- package/dist/migrations/manifests/0.1.2.json +9 -0
- package/dist/migrations/manifests/0.1.3.json +9 -0
- package/dist/migrations/manifests/0.1.4.json +9 -0
- package/dist/migrations/manifests/0.2.1.json +9 -0
- package/dist/migrations/manifests/0.2.10.json +374 -0
- package/dist/migrations/manifests/0.2.2.json +9 -0
- package/dist/migrations/manifests/0.2.3.json +9 -0
- package/dist/migrations/manifests/0.2.4.json +9 -0
- package/dist/migrations/manifests/0.2.5.json +9 -0
- package/dist/migrations/manifests/0.2.6.json +9 -0
- package/dist/migrations/manifests/0.2.7.json +9 -0
- package/dist/migrations/manifests/0.2.8.json +9 -0
- package/dist/migrations/manifests/0.2.9.json +9 -0
- package/dist/migrations/manifests/0.3.0.json +89 -0
- package/dist/migrations/manifests/0.3.1.json +32 -0
- package/dist/migrations/manifests/0.3.2.json +16 -0
- package/dist/migrations/manifests/0.3.3.json +9 -0
- package/dist/migrations/manifests/0.3.4.json +9 -0
- package/dist/migrations/manifests/0.3.5.json +9 -0
- package/dist/migrations/manifests/0.3.6.json +9 -0
- package/dist/migrations/manifests/0.4.0.json +9 -0
- package/dist/migrations/manifests/0.4.1.json +9 -0
- package/dist/migrations/manifests/0.4.2.json +9 -0
- package/dist/migrations/manifests/0.4.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.0.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.5.json +9 -0
- package/dist/pactile/adapters/codex/index.d.ts +75 -0
- package/dist/pactile/adapters/codex/index.d.ts.map +1 -0
- package/dist/pactile/adapters/codex/index.js +269 -0
- package/dist/pactile/adapters/codex/index.js.map +1 -0
- package/dist/pactile/adapters/cursor/index.d.ts +60 -0
- package/dist/pactile/adapters/cursor/index.d.ts.map +1 -0
- package/dist/pactile/adapters/cursor/index.js +186 -0
- package/dist/pactile/adapters/cursor/index.js.map +1 -0
- package/dist/pactile/adapters/index.d.ts +4 -0
- package/dist/pactile/adapters/index.d.ts.map +1 -0
- package/dist/pactile/adapters/index.js +4 -0
- package/dist/pactile/adapters/index.js.map +1 -0
- package/dist/pactile/adoption/bindings.d.ts +20 -0
- package/dist/pactile/adoption/bindings.d.ts.map +1 -0
- package/dist/pactile/adoption/bindings.js +99 -0
- package/dist/pactile/adoption/bindings.js.map +1 -0
- package/dist/pactile/adoption/discovery.d.ts +8 -0
- package/dist/pactile/adoption/discovery.d.ts.map +1 -0
- package/dist/pactile/adoption/discovery.js +159 -0
- package/dist/pactile/adoption/discovery.js.map +1 -0
- package/dist/pactile/adoption/inventory.d.ts +28 -0
- package/dist/pactile/adoption/inventory.d.ts.map +1 -0
- package/dist/pactile/adoption/inventory.js +261 -0
- package/dist/pactile/adoption/inventory.js.map +1 -0
- package/dist/pactile/adoption/safety.d.ts +19 -0
- package/dist/pactile/adoption/safety.d.ts.map +1 -0
- package/dist/pactile/adoption/safety.js +88 -0
- package/dist/pactile/adoption/safety.js.map +1 -0
- package/dist/pactile/adoption/workflow.d.ts +31 -0
- package/dist/pactile/adoption/workflow.d.ts.map +1 -0
- package/dist/pactile/adoption/workflow.js +259 -0
- package/dist/pactile/adoption/workflow.js.map +1 -0
- package/dist/pactile/compat/cli-options.d.ts +9 -0
- package/dist/pactile/compat/cli-options.d.ts.map +1 -0
- package/dist/pactile/compat/cli-options.js +9 -0
- package/dist/pactile/compat/cli-options.js.map +1 -0
- package/dist/pactile/compat/init-context.d.ts +16 -0
- package/dist/pactile/compat/init-context.d.ts.map +1 -0
- package/dist/pactile/compat/init-context.js +87 -0
- package/dist/pactile/compat/init-context.js.map +1 -0
- package/dist/pactile/compat/legacy-migrations.d.ts +8 -0
- package/dist/pactile/compat/legacy-migrations.d.ts.map +1 -0
- package/dist/pactile/compat/legacy-migrations.js +17 -0
- package/dist/pactile/compat/legacy-migrations.js.map +1 -0
- package/dist/pactile/compat/retired-alternate-client.d.ts +42 -0
- package/dist/pactile/compat/retired-alternate-client.d.ts.map +1 -0
- package/dist/pactile/compat/retired-alternate-client.js +153 -0
- package/dist/pactile/compat/retired-alternate-client.js.map +1 -0
- package/dist/pactile/compat/update-residue.d.ts +4 -0
- package/dist/pactile/compat/update-residue.d.ts.map +1 -0
- package/dist/pactile/compat/update-residue.js +55 -0
- package/dist/pactile/compat/update-residue.js.map +1 -0
- package/dist/pactile/exit/index.d.ts +3 -0
- package/dist/pactile/exit/index.d.ts.map +1 -0
- package/dist/pactile/exit/index.js +3 -0
- package/dist/pactile/exit/index.js.map +1 -0
- package/dist/pactile/exit/receipt.d.ts +23 -0
- package/dist/pactile/exit/receipt.d.ts.map +1 -0
- package/dist/pactile/exit/receipt.js +64 -0
- package/dist/pactile/exit/receipt.js.map +1 -0
- package/dist/pactile/exit/service.d.ts +107 -0
- package/dist/pactile/exit/service.d.ts.map +1 -0
- package/dist/pactile/exit/service.js +774 -0
- package/dist/pactile/exit/service.js.map +1 -0
- package/dist/pactile/index.d.ts +26 -0
- package/dist/pactile/index.d.ts.map +1 -0
- package/dist/pactile/index.js +22 -0
- package/dist/pactile/index.js.map +1 -0
- package/dist/pactile/lifecycle/command-runner.d.ts +26 -0
- package/dist/pactile/lifecycle/command-runner.d.ts.map +1 -0
- package/dist/pactile/lifecycle/command-runner.js +129 -0
- package/dist/pactile/lifecycle/command-runner.js.map +1 -0
- package/dist/pactile/lifecycle/default-adapters.d.ts +5 -0
- package/dist/pactile/lifecycle/default-adapters.d.ts.map +1 -0
- package/dist/pactile/lifecycle/default-adapters.js +136 -0
- package/dist/pactile/lifecycle/default-adapters.js.map +1 -0
- package/dist/pactile/lifecycle/index.d.ts +6 -0
- package/dist/pactile/lifecycle/index.d.ts.map +1 -0
- package/dist/pactile/lifecycle/index.js +6 -0
- package/dist/pactile/lifecycle/index.js.map +1 -0
- package/dist/pactile/lifecycle/legacy-import.d.ts +16 -0
- package/dist/pactile/lifecycle/legacy-import.d.ts.map +1 -0
- package/dist/pactile/lifecycle/legacy-import.js +228 -0
- package/dist/pactile/lifecycle/legacy-import.js.map +1 -0
- package/dist/pactile/lifecycle/orchestrator.d.ts +109 -0
- package/dist/pactile/lifecycle/orchestrator.d.ts.map +1 -0
- package/dist/pactile/lifecycle/orchestrator.js +1030 -0
- package/dist/pactile/lifecycle/orchestrator.js.map +1 -0
- package/dist/pactile/lifecycle/project-files.d.ts +28 -0
- package/dist/pactile/lifecycle/project-files.d.ts.map +1 -0
- package/dist/pactile/lifecycle/project-files.js +297 -0
- package/dist/pactile/lifecycle/project-files.js.map +1 -0
- package/dist/pactile/middleware/index.d.ts +3 -0
- package/dist/pactile/middleware/index.d.ts.map +1 -0
- package/dist/pactile/middleware/index.js +2 -0
- package/dist/pactile/middleware/index.js.map +1 -0
- package/dist/pactile/middleware/manifest-loader.d.ts +22 -0
- package/dist/pactile/middleware/manifest-loader.d.ts.map +1 -0
- package/dist/pactile/middleware/manifest-loader.js +228 -0
- package/dist/pactile/middleware/manifest-loader.js.map +1 -0
- package/dist/pactile/migration/index.d.ts +2 -0
- package/dist/pactile/migration/index.d.ts.map +1 -0
- package/dist/pactile/migration/index.js +2 -0
- package/dist/pactile/migration/index.js.map +1 -0
- package/dist/pactile/migration/transaction.d.ts +54 -0
- package/dist/pactile/migration/transaction.d.ts.map +1 -0
- package/dist/pactile/migration/transaction.js +445 -0
- package/dist/pactile/migration/transaction.js.map +1 -0
- package/dist/pactile/projection/managed-block.d.ts +32 -0
- package/dist/pactile/projection/managed-block.d.ts.map +1 -0
- package/dist/pactile/projection/managed-block.js +78 -0
- package/dist/pactile/projection/managed-block.js.map +1 -0
- package/dist/pactile/projection/planner.d.ts +65 -0
- package/dist/pactile/projection/planner.d.ts.map +1 -0
- package/dist/pactile/projection/planner.js +349 -0
- package/dist/pactile/projection/planner.js.map +1 -0
- package/dist/pactile/projection/shared/index.d.ts +38 -0
- package/dist/pactile/projection/shared/index.d.ts.map +1 -0
- package/dist/pactile/projection/shared/index.js +186 -0
- package/dist/pactile/projection/shared/index.js.map +1 -0
- package/dist/pactile/projection/store.d.ts +72 -0
- package/dist/pactile/projection/store.d.ts.map +1 -0
- package/dist/pactile/projection/store.js +669 -0
- package/dist/pactile/projection/store.js.map +1 -0
- package/dist/pactile/projection/structured-merge.d.ts +11 -0
- package/dist/pactile/projection/structured-merge.d.ts.map +1 -0
- package/dist/pactile/projection/structured-merge.js +347 -0
- package/dist/pactile/projection/structured-merge.js.map +1 -0
- package/dist/pactile/providers/index.d.ts +3 -0
- package/dist/pactile/providers/index.d.ts.map +1 -0
- package/dist/pactile/providers/index.js +3 -0
- package/dist/pactile/providers/index.js.map +1 -0
- package/dist/pactile/providers/probes.d.ts +55 -0
- package/dist/pactile/providers/probes.d.ts.map +1 -0
- package/dist/pactile/providers/probes.js +164 -0
- package/dist/pactile/providers/probes.js.map +1 -0
- package/dist/pactile/registry.d.ts +64 -0
- package/dist/pactile/registry.d.ts.map +1 -0
- package/dist/pactile/registry.js +196 -0
- package/dist/pactile/registry.js.map +1 -0
- package/dist/pactile/retrieval/boundary.d.ts +18 -0
- package/dist/pactile/retrieval/boundary.d.ts.map +1 -0
- package/dist/pactile/retrieval/boundary.js +113 -0
- package/dist/pactile/retrieval/boundary.js.map +1 -0
- package/dist/pactile/retrieval/evidence.d.ts +9 -0
- package/dist/pactile/retrieval/evidence.d.ts.map +1 -0
- package/dist/pactile/retrieval/evidence.js +327 -0
- package/dist/pactile/retrieval/evidence.js.map +1 -0
- package/dist/pactile/retrieval/index.d.ts +4 -0
- package/dist/pactile/retrieval/index.d.ts.map +1 -0
- package/dist/pactile/retrieval/index.js +4 -0
- package/dist/pactile/retrieval/index.js.map +1 -0
- package/dist/pactile/retrieval/planner.d.ts +23 -0
- package/dist/pactile/retrieval/planner.d.ts.map +1 -0
- package/dist/pactile/retrieval/planner.js +702 -0
- package/dist/pactile/retrieval/planner.js.map +1 -0
- package/dist/pactile/retrieval/types.d.ts +108 -0
- package/dist/pactile/retrieval/types.d.ts.map +1 -0
- package/dist/pactile/retrieval/types.js +36 -0
- package/dist/pactile/retrieval/types.js.map +1 -0
- package/dist/pactile/runtime/case-fold.d.ts +2 -0
- package/dist/pactile/runtime/case-fold.d.ts.map +1 -0
- package/dist/pactile/runtime/case-fold.js +31 -0
- package/dist/pactile/runtime/case-fold.js.map +1 -0
- package/dist/pactile/runtime/index.d.ts +8 -0
- package/dist/pactile/runtime/index.d.ts.map +1 -0
- package/dist/pactile/runtime/index.js +5 -0
- package/dist/pactile/runtime/index.js.map +1 -0
- package/dist/pactile/runtime/json-api.d.ts +15 -0
- package/dist/pactile/runtime/json-api.d.ts.map +1 -0
- package/dist/pactile/runtime/json-api.js +68 -0
- package/dist/pactile/runtime/json-api.js.map +1 -0
- package/dist/pactile/runtime/paths.d.ts +59 -0
- package/dist/pactile/runtime/paths.d.ts.map +1 -0
- package/dist/pactile/runtime/paths.js +201 -0
- package/dist/pactile/runtime/paths.js.map +1 -0
- package/dist/pactile/runtime/stores.d.ts +54 -0
- package/dist/pactile/runtime/stores.d.ts.map +1 -0
- package/dist/pactile/runtime/stores.js +375 -0
- package/dist/pactile/runtime/stores.js.map +1 -0
- package/dist/pactile/runtime/unicode-nfc-data.d.ts +12 -0
- package/dist/pactile/runtime/unicode-nfc-data.d.ts.map +1 -0
- package/dist/pactile/runtime/unicode-nfc-data.js +8 -0
- package/dist/pactile/runtime/unicode-nfc-data.js.map +1 -0
- package/dist/pactile/runtime/unicode-nfc.d.ts +3 -0
- package/dist/pactile/runtime/unicode-nfc.d.ts.map +1 -0
- package/dist/pactile/runtime/unicode-nfc.js +77 -0
- package/dist/pactile/runtime/unicode-nfc.js.map +1 -0
- package/dist/pactile/tiles/catalog.d.ts +35 -0
- package/dist/pactile/tiles/catalog.d.ts.map +1 -0
- package/dist/pactile/tiles/catalog.js +235 -0
- package/dist/pactile/tiles/catalog.js.map +1 -0
- package/dist/pactile/tiles/compiler.d.ts +54 -0
- package/dist/pactile/tiles/compiler.d.ts.map +1 -0
- package/dist/pactile/tiles/compiler.js +270 -0
- package/dist/pactile/tiles/compiler.js.map +1 -0
- package/dist/pactile/tiles/content/baseline/index.d.ts +5 -0
- package/dist/pactile/tiles/content/baseline/index.d.ts.map +1 -0
- package/dist/pactile/tiles/content/baseline/index.js +115 -0
- package/dist/pactile/tiles/content/baseline/index.js.map +1 -0
- package/dist/pactile/tiles/content/index.d.ts +4 -0
- package/dist/pactile/tiles/content/index.d.ts.map +1 -0
- package/dist/pactile/tiles/content/index.js +4 -0
- package/dist/pactile/tiles/content/index.js.map +1 -0
- package/dist/pactile/tiles/content/ondemand/index.d.ts +5 -0
- package/dist/pactile/tiles/content/ondemand/index.d.ts.map +1 -0
- package/dist/pactile/tiles/content/ondemand/index.js +184 -0
- package/dist/pactile/tiles/content/ondemand/index.js.map +1 -0
- package/dist/pactile/tiles/content/source.d.ts +29 -0
- package/dist/pactile/tiles/content/source.d.ts.map +1 -0
- package/dist/pactile/tiles/content/source.js +86 -0
- package/dist/pactile/tiles/content/source.js.map +1 -0
- package/dist/pactile/tiles/loader.d.ts +31 -0
- package/dist/pactile/tiles/loader.d.ts.map +1 -0
- package/dist/pactile/tiles/loader.js +139 -0
- package/dist/pactile/tiles/loader.js.map +1 -0
- package/dist/pactile/tiles/safe-yaml.d.ts +11 -0
- package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -0
- package/dist/pactile/tiles/safe-yaml.js +212 -0
- package/dist/pactile/tiles/safe-yaml.js.map +1 -0
- package/dist/templates/common/bundled-skills/pactile-check/SKILL.md +161 -0
- package/dist/templates/common/bundled-skills/pactile-check/references/fowler-12-smells.md +28 -0
- package/dist/templates/common/bundled-skills/pactile-handoff/SKILL.md +117 -0
- package/dist/templates/common/bundled-skills/pactile-meta/SKILL.md +75 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/add-project-local-conventions.md +83 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-agents.md +47 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-context-loading.md +84 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +57 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-skills-or-commands.md +77 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-spec-structure.md +83 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-task-lifecycle.md +88 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-workflow.md +65 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/overview.md +55 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/context-injection.md +68 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +83 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/overview.md +51 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/spec-system.md +102 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/task-system.md +133 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workflow.md +75 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workspace-memory.md +71 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/agents.md +69 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +59 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +45 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +45 -0
- package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/skills-and-commands.md +108 -0
- package/dist/templates/common/bundled-skills/pactile-micro-grill/SKILL.md +68 -0
- package/dist/templates/common/bundled-skills/pactile-skill-creator/SKILL.md +47 -0
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/authoring-rules.md +171 -0
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/general-authoring.md +189 -0
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/pactile-skill-locations.md +52 -0
- package/dist/templates/common/bundled-skills/pactile-skill-creator/references/review-checklist.md +52 -0
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/SKILL.md +41 -0
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/mcp-setup.md +90 -0
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/repository-analysis.md +59 -0
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-task-planning.md +61 -0
- package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-writing.md +70 -0
- package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +393 -0
- package/dist/templates/common/bundled-skills/smart-search-cli/agents/openai.yaml +3 -0
- package/dist/templates/common/bundled-skills/smart-search-cli/examples/batch-search.md +98 -0
- package/dist/templates/common/bundled-skills/smart-search-cli/examples/evidence-gathering.md +89 -0
- package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +323 -0
- package/dist/templates/common/commands/continue.md +62 -0
- package/dist/templates/common/commands/finish-work.md +82 -0
- package/dist/templates/common/commands/start.md +66 -0
- package/dist/templates/common/index.d.ts +68 -0
- package/dist/templates/common/index.d.ts.map +1 -0
- package/dist/templates/common/index.js +123 -0
- package/dist/templates/common/index.js.map +1 -0
- package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +179 -0
- package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +149 -0
- package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +904 -0
- package/dist/templates/common/skills/before-dev.md +35 -0
- package/dist/templates/common/skills/brainstorm.md +204 -0
- package/dist/templates/common/skills/break-loop.md +125 -0
- package/dist/templates/common/skills/update-spec.md +364 -0
- package/dist/templates/cursor/agents/pactile-check.md +58 -0
- package/dist/templates/cursor/agents/pactile-implement.md +56 -0
- package/dist/templates/cursor/agents/pactile-research.md +51 -0
- package/dist/templates/cursor/commands/handoff.md +101 -0
- package/dist/templates/cursor/fixtures/expected-rules.d.ts +14 -0
- package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -0
- package/dist/templates/cursor/fixtures/expected-rules.js +20 -0
- package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -0
- package/dist/templates/cursor/hooks.json +52 -0
- package/dist/templates/cursor/index.d.ts +19 -0
- package/dist/templates/cursor/index.d.ts.map +1 -0
- package/dist/templates/cursor/index.js +19 -0
- package/dist/templates/cursor/index.js.map +1 -0
- package/dist/templates/cursor/rules/pactile-bootstrap.mdc +18 -0
- package/dist/templates/cursor/worktrees.json +11 -0
- package/dist/templates/extract.d.ts +38 -0
- package/dist/templates/extract.d.ts.map +1 -0
- package/dist/templates/extract.js +120 -0
- package/dist/templates/extract.js.map +1 -0
- package/dist/templates/markdown/agents.md +14 -0
- package/dist/templates/markdown/framework/artifact-locale-guide.md.txt +93 -0
- package/dist/templates/markdown/framework/cursor-context-injection-guide.md.txt +85 -0
- package/dist/templates/markdown/framework/cursor-native-modes-guide.md.txt +239 -0
- package/dist/templates/markdown/framework/cursor-semantic-compliance.md.txt +41 -0
- package/dist/templates/markdown/framework/cursor-subagent-policy.md.txt +90 -0
- package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +28 -0
- package/dist/templates/markdown/framework/execution-strategy.md.txt +45 -0
- package/dist/templates/markdown/framework/index.md.txt +31 -0
- package/dist/templates/markdown/framework/injection-budget-guide.md.txt +111 -0
- package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +45 -0
- package/dist/templates/markdown/framework/middleware-protocol.md.txt +238 -0
- package/dist/templates/markdown/framework/parallel-first-execution.md.txt +116 -0
- package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +105 -0
- package/dist/templates/markdown/framework/release-boundary.md.txt +30 -0
- package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +199 -0
- package/dist/templates/markdown/framework/upgrade.md.txt +15 -0
- package/dist/templates/markdown/framework/verification-strength-guide.md.txt +185 -0
- package/dist/templates/markdown/gitignore.txt +15 -0
- package/dist/templates/markdown/index.d.ts +59 -0
- package/dist/templates/markdown/index.d.ts.map +1 -0
- package/dist/templates/markdown/index.js +144 -0
- package/dist/templates/markdown/index.js.map +1 -0
- package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +25 -0
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +174 -0
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +162 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +634 -0
- package/dist/templates/markdown/spec/guides/debug-loop-guide.md.txt +227 -0
- package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +76 -0
- package/dist/templates/markdown/spec/guides/e2e-walkthrough-guide.md.txt +93 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +131 -0
- package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +139 -0
- package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +179 -0
- package/dist/templates/markdown/workspace-index.md +125 -0
- package/dist/templates/markdown/worktree.yaml.txt +58 -0
- package/dist/templates/pactile/CONTEXT.md +113 -0
- package/dist/templates/pactile/config/execution-strategy-rules.json +31 -0
- package/dist/templates/pactile/config.yaml +130 -0
- package/dist/templates/pactile/docs/adr/README.md +21 -0
- package/dist/templates/pactile/gitignore.txt +35 -0
- package/dist/templates/pactile/index.d.ts +134 -0
- package/dist/templates/pactile/index.d.ts.map +1 -0
- package/dist/templates/pactile/index.js +316 -0
- package/dist/templates/pactile/index.js.map +1 -0
- package/dist/templates/pactile/modules/approval-personal/contract.md +43 -0
- package/dist/templates/pactile/modules/candidate-pool/contract.md +37 -0
- package/dist/templates/pactile/modules/catalog.d.ts +32 -0
- package/dist/templates/pactile/modules/catalog.d.ts.map +1 -0
- package/dist/templates/pactile/modules/catalog.js +46 -0
- package/dist/templates/pactile/modules/catalog.js.map +1 -0
- package/dist/templates/pactile/modules/close-basic/contract.md +38 -0
- package/dist/templates/pactile/modules/context-progressive/contract.md +44 -0
- package/dist/templates/pactile/modules/debug-recovery/contract.md +44 -0
- package/dist/templates/pactile/modules/define-basic/contract.md +39 -0
- package/dist/templates/pactile/modules/define-extended/contract.md +45 -0
- package/dist/templates/pactile/modules/execute-agent/contract.md +38 -0
- package/dist/templates/pactile/modules/independent-check/contract.md +35 -0
- package/dist/templates/pactile/modules/index.json +133 -0
- package/dist/templates/pactile/modules/intake-basic/contract.md +34 -0
- package/dist/templates/pactile/modules/observability-local/contract.md +31 -0
- package/dist/templates/pactile/modules/parent-child/contract.md +45 -0
- package/dist/templates/pactile/modules/personal-memory/contract.md +56 -0
- package/dist/templates/pactile/modules/retention-storage/contract.md +43 -0
- package/dist/templates/pactile/modules/retrieval-extended/contract.md +77 -0
- package/dist/templates/pactile/modules/session-transfer/contract.md +41 -0
- package/dist/templates/pactile/modules/spec-learning/contract.md +50 -0
- package/dist/templates/pactile/modules/vcs-integration/contract.md +46 -0
- package/dist/templates/pactile/modules/verify-basic/contract.md +38 -0
- package/dist/templates/pactile/modules/worker-orchestration/contract.md +47 -0
- package/dist/templates/pactile/pool/README.md +149 -0
- package/dist/templates/pactile/pool/items/.gitkeep +0 -0
- package/dist/templates/pactile/pool/plan.md +50 -0
- package/dist/templates/pactile/scripts/__init__.py +5 -0
- package/dist/templates/pactile/scripts/add_session.py +547 -0
- package/dist/templates/pactile/scripts/build_context_pack.py +17 -0
- package/dist/templates/pactile/scripts/build_retrieval_pack.py +376 -0
- package/dist/templates/pactile/scripts/codegraph_session_smoke.py +76 -0
- package/dist/templates/pactile/scripts/common/__init__.py +103 -0
- package/dist/templates/pactile/scripts/common/active_task.py +576 -0
- package/dist/templates/pactile/scripts/common/adapter_middleware.py +1373 -0
- package/dist/templates/pactile/scripts/common/artifact_locale.py +303 -0
- package/dist/templates/pactile/scripts/common/artifact_search.py +587 -0
- package/dist/templates/pactile/scripts/common/cli_adapter.py +135 -0
- package/dist/templates/pactile/scripts/common/cli_environment.py +155 -0
- package/dist/templates/pactile/scripts/common/codebase_retrieval_router.py +1339 -0
- package/dist/templates/pactile/scripts/common/config.py +497 -0
- package/dist/templates/pactile/scripts/common/context_pack.py +371 -0
- package/dist/templates/pactile/scripts/common/cursor_retrieval_env.py +31 -0
- package/dist/templates/pactile/scripts/common/developer.py +190 -0
- package/dist/templates/pactile/scripts/common/execution_strategy.py +268 -0
- package/dist/templates/pactile/scripts/common/full_quality.py +237 -0
- package/dist/templates/pactile/scripts/common/git.py +37 -0
- package/dist/templates/pactile/scripts/common/git_context.py +198 -0
- package/dist/templates/pactile/scripts/common/injection_budget.py +317 -0
- package/dist/templates/pactile/scripts/common/io.py +37 -0
- package/dist/templates/pactile/scripts/common/kernel_command.py +369 -0
- package/dist/templates/pactile/scripts/common/lite_context.py +280 -0
- package/dist/templates/pactile/scripts/common/log.py +45 -0
- package/dist/templates/pactile/scripts/common/ondemand_topology.py +419 -0
- package/dist/templates/pactile/scripts/common/packages_context.py +239 -0
- package/dist/templates/pactile/scripts/common/pactile_config.py +131 -0
- package/dist/templates/pactile/scripts/common/parallel_declaration.py +369 -0
- package/dist/templates/pactile/scripts/common/parent_orchestration.py +1198 -0
- package/dist/templates/pactile/scripts/common/paths.py +756 -0
- package/dist/templates/pactile/scripts/common/pool_refs.py +119 -0
- package/dist/templates/pactile/scripts/common/pool_slice.py +269 -0
- package/dist/templates/pactile/scripts/common/pool_store.py +766 -0
- package/dist/templates/pactile/scripts/common/project_file_stats.py +91 -0
- package/dist/templates/pactile/scripts/common/retrieval_adapter_metadata.py +943 -0
- package/dist/templates/pactile/scripts/common/retrieval_agent_instructions.py +123 -0
- package/dist/templates/pactile/scripts/common/retrieval_evidence.py +915 -0
- package/dist/templates/pactile/scripts/common/retrieval_pack.py +422 -0
- package/dist/templates/pactile/scripts/common/retrieval_pack_context.py +122 -0
- package/dist/templates/pactile/scripts/common/retrieval_plan_gate.py +61 -0
- package/dist/templates/pactile/scripts/common/retrieval_result_ranking.py +104 -0
- package/dist/templates/pactile/scripts/common/retrieval_tool_classification.py +166 -0
- package/dist/templates/pactile/scripts/common/safe_commit.py +285 -0
- package/dist/templates/pactile/scripts/common/semantic_plan_gate.py +53 -0
- package/dist/templates/pactile/scripts/common/session_context.py +1213 -0
- package/dist/templates/pactile/scripts/common/session_memory.py +386 -0
- package/dist/templates/pactile/scripts/common/session_pack.py +886 -0
- package/dist/templates/pactile/scripts/common/smart_search_evidence.py +514 -0
- package/dist/templates/pactile/scripts/common/smart_search_resolve.py +150 -0
- package/dist/templates/pactile/scripts/common/subagent_dispatch.py +592 -0
- package/dist/templates/pactile/scripts/common/task_context.py +241 -0
- package/dist/templates/pactile/scripts/common/task_dashboard.py +286 -0
- package/dist/templates/pactile/scripts/common/task_dependencies.py +648 -0
- package/dist/templates/pactile/scripts/common/task_gates.py +2478 -0
- package/dist/templates/pactile/scripts/common/task_map.py +703 -0
- package/dist/templates/pactile/scripts/common/task_queue.py +188 -0
- package/dist/templates/pactile/scripts/common/task_store.py +2252 -0
- package/dist/templates/pactile/scripts/common/task_utils.py +274 -0
- package/dist/templates/pactile/scripts/common/tasks.py +231 -0
- package/dist/templates/pactile/scripts/common/test_adapter_middleware.py +199 -0
- package/dist/templates/pactile/scripts/common/test_depends_mode_block.py +509 -0
- package/dist/templates/pactile/scripts/common/test_full_quality.py +197 -0
- package/dist/templates/pactile/scripts/common/test_kernel_command.py +336 -0
- package/dist/templates/pactile/scripts/common/test_lite_path.py +190 -0
- package/dist/templates/pactile/scripts/common/test_observable_defaults.py +141 -0
- package/dist/templates/pactile/scripts/common/test_ondemand_topology.py +237 -0
- package/dist/templates/pactile/scripts/common/test_parallel_declaration.py +264 -0
- package/dist/templates/pactile/scripts/common/test_pool_slice.py +198 -0
- package/dist/templates/pactile/scripts/common/test_pool_store.py +452 -0
- package/dist/templates/pactile/scripts/common/test_retrieval_arbitration.py +331 -0
- package/dist/templates/pactile/scripts/common/test_task_dashboard.py +155 -0
- package/dist/templates/pactile/scripts/common/test_task_dependencies.py +329 -0
- package/dist/templates/pactile/scripts/common/test_task_store_kernel_patch.py +163 -0
- package/dist/templates/pactile/scripts/common/types.py +110 -0
- package/dist/templates/pactile/scripts/common/workflow_phase.py +194 -0
- package/dist/templates/pactile/scripts/compile_session_pack.py +15 -0
- package/dist/templates/pactile/scripts/cursor_retrieval_probe.py +64 -0
- package/dist/templates/pactile/scripts/cursor_retrieval_probe_prompt.md +33 -0
- package/dist/templates/pactile/scripts/generate_dispatch_prompt.py +182 -0
- package/dist/templates/pactile/scripts/get_context.py +19 -0
- package/dist/templates/pactile/scripts/get_developer.py +26 -0
- package/dist/templates/pactile/scripts/hooks/linear_sync.py +243 -0
- package/dist/templates/pactile/scripts/init_developer.py +51 -0
- package/dist/templates/pactile/scripts/injection_budget_probe.py +69 -0
- package/dist/templates/pactile/scripts/pool.py +237 -0
- package/dist/templates/pactile/scripts/rank_retrieval_candidates.py +98 -0
- package/dist/templates/pactile/scripts/retrieval_probe_matrix_template.json +43 -0
- package/dist/templates/pactile/scripts/route_codebase_retrieval.py +72 -0
- package/dist/templates/pactile/scripts/run_smart_search.py +12 -0
- package/dist/templates/pactile/scripts/score_evidence.py +131 -0
- package/dist/templates/pactile/scripts/search_artifacts.py +13 -0
- package/dist/templates/pactile/scripts/search_memory.py +12 -0
- package/dist/templates/pactile/scripts/spec_health_outcomes.py +160 -0
- package/dist/templates/pactile/scripts/task.py +1118 -0
- package/dist/templates/pactile/scripts/verify_evidence_probe.py +138 -0
- package/dist/templates/pactile/tasks/.gitkeep +0 -0
- package/dist/templates/pactile/tasks/locale/en/default-prd.md +27 -0
- package/dist/templates/pactile/tasks/locale/zh/default-prd.md +27 -0
- package/dist/templates/pactile/tasks/templates/release-execution/design.md +61 -0
- package/dist/templates/pactile/tasks/templates/release-execution/handoff-template.md +29 -0
- package/dist/templates/pactile/tasks/templates/release-execution/implement.md +29 -0
- package/dist/templates/pactile/tasks/templates/release-execution/prd.md +31 -0
- package/dist/templates/pactile/tasks/templates/release-readiness/design.md +50 -0
- package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +39 -0
- package/dist/templates/pactile/tasks/templates/release-readiness/implement.md +29 -0
- package/dist/templates/pactile/tasks/templates/release-readiness/prd.md +31 -0
- package/dist/templates/pactile/workflow.md +64 -0
- package/dist/templates/shared-hooks/event-bridge.py +121 -0
- package/dist/templates/shared-hooks/index.d.ts +50 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -0
- package/dist/templates/shared-hooks/index.js +96 -0
- package/dist/templates/shared-hooks/index.js.map +1 -0
- package/dist/templates/shared-hooks/inject-retrieval-plan.py +217 -0
- package/dist/templates/shared-hooks/inject-shell-session-context.py +183 -0
- package/dist/templates/shared-hooks/inject-subagent-context.py +267 -0
- package/dist/templates/shared-hooks/inject-workflow-state.py +106 -0
- package/dist/templates/shared-hooks/rename-session-for-task.py +231 -0
- package/dist/templates/shared-hooks/research-end-retrieval-pack.py +345 -0
- package/dist/templates/shared-hooks/session-start.py +355 -0
- package/dist/templates/shared-hooks/spec-write-audit.py +173 -0
- package/dist/templates/template-utils.d.ts +28 -0
- package/dist/templates/template-utils.d.ts.map +1 -0
- package/dist/templates/template-utils.js +83 -0
- package/dist/templates/template-utils.js.map +1 -0
- package/dist/types/ai-tools.d.ts +102 -0
- package/dist/types/ai-tools.d.ts.map +1 -0
- package/dist/types/ai-tools.js +60 -0
- package/dist/types/ai-tools.js.map +1 -0
- package/dist/types/migration.d.ts +125 -0
- package/dist/types/migration.d.ts.map +1 -0
- package/dist/types/migration.js +8 -0
- package/dist/types/migration.js.map +1 -0
- package/dist/utils/agents-md.d.ts +27 -0
- package/dist/utils/agents-md.d.ts.map +1 -0
- package/dist/utils/agents-md.js +70 -0
- package/dist/utils/agents-md.js.map +1 -0
- package/dist/utils/codebase-retrieval-router.d.ts +31 -0
- package/dist/utils/codebase-retrieval-router.d.ts.map +1 -0
- package/dist/utils/codebase-retrieval-router.js +88 -0
- package/dist/utils/codebase-retrieval-router.js.map +1 -0
- package/dist/utils/compare-versions.d.ts +12 -0
- package/dist/utils/compare-versions.d.ts.map +1 -0
- package/dist/utils/compare-versions.js +86 -0
- package/dist/utils/compare-versions.js.map +1 -0
- package/dist/utils/cursor-retrieval-env.d.ts +17 -0
- package/dist/utils/cursor-retrieval-env.d.ts.map +1 -0
- package/dist/utils/cursor-retrieval-env.js +19 -0
- package/dist/utils/cursor-retrieval-env.js.map +1 -0
- package/dist/utils/cwd-guard.d.ts +38 -0
- package/dist/utils/cwd-guard.d.ts.map +1 -0
- package/dist/utils/cwd-guard.js +63 -0
- package/dist/utils/cwd-guard.js.map +1 -0
- package/dist/utils/file-writer.d.ts +36 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +203 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/manifest-prune.d.ts +59 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -0
- package/dist/utils/manifest-prune.js +176 -0
- package/dist/utils/manifest-prune.js.map +1 -0
- package/dist/utils/mirror-check.d.ts +22 -0
- package/dist/utils/mirror-check.d.ts.map +1 -0
- package/dist/utils/mirror-check.js +90 -0
- package/dist/utils/mirror-check.js.map +1 -0
- package/dist/utils/normalize-text.d.ts +7 -0
- package/dist/utils/normalize-text.d.ts.map +1 -0
- package/dist/utils/normalize-text.js +16 -0
- package/dist/utils/normalize-text.js.map +1 -0
- package/dist/utils/p36-upgrade.d.ts +62 -0
- package/dist/utils/p36-upgrade.d.ts.map +1 -0
- package/dist/utils/p36-upgrade.js +165 -0
- package/dist/utils/p36-upgrade.js.map +1 -0
- package/dist/utils/posix.d.ts +13 -0
- package/dist/utils/posix.d.ts.map +1 -0
- package/dist/utils/posix.js +15 -0
- package/dist/utils/posix.js.map +1 -0
- package/dist/utils/post-update-smoke.d.ts +7 -0
- package/dist/utils/post-update-smoke.d.ts.map +1 -0
- package/dist/utils/post-update-smoke.js +40 -0
- package/dist/utils/post-update-smoke.js.map +1 -0
- package/dist/utils/project-capabilities.d.ts +82 -0
- package/dist/utils/project-capabilities.d.ts.map +1 -0
- package/dist/utils/project-capabilities.js +691 -0
- package/dist/utils/project-capabilities.js.map +1 -0
- package/dist/utils/project-detector.d.ts +46 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +666 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/proxy.d.ts +25 -0
- package/dist/utils/proxy.d.ts.map +1 -0
- package/dist/utils/proxy.js +60 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/readiness.d.ts +40 -0
- package/dist/utils/readiness.d.ts.map +1 -0
- package/dist/utils/readiness.js +491 -0
- package/dist/utils/readiness.js.map +1 -0
- package/dist/utils/retrieval-agent-instructions.d.ts +10 -0
- package/dist/utils/retrieval-agent-instructions.d.ts.map +1 -0
- package/dist/utils/retrieval-agent-instructions.js +97 -0
- package/dist/utils/retrieval-agent-instructions.js.map +1 -0
- package/dist/utils/retrieval-execution-telemetry.d.ts +53 -0
- package/dist/utils/retrieval-execution-telemetry.d.ts.map +1 -0
- package/dist/utils/retrieval-execution-telemetry.js +116 -0
- package/dist/utils/retrieval-execution-telemetry.js.map +1 -0
- package/dist/utils/retrieval-result-ranking.d.ts +34 -0
- package/dist/utils/retrieval-result-ranking.d.ts.map +1 -0
- package/dist/utils/retrieval-result-ranking.js +71 -0
- package/dist/utils/retrieval-result-ranking.js.map +1 -0
- package/dist/utils/retrieval-tool-classification.d.ts +18 -0
- package/dist/utils/retrieval-tool-classification.d.ts.map +1 -0
- package/dist/utils/retrieval-tool-classification.js +118 -0
- package/dist/utils/retrieval-tool-classification.js.map +1 -0
- package/dist/utils/semantic-plan-gate.d.ts +8 -0
- package/dist/utils/semantic-plan-gate.d.ts.map +1 -0
- package/dist/utils/semantic-plan-gate.js +24 -0
- package/dist/utils/semantic-plan-gate.js.map +1 -0
- package/dist/utils/task-json.d.ts +13 -0
- package/dist/utils/task-json.d.ts.map +1 -0
- package/dist/utils/task-json.js +12 -0
- package/dist/utils/task-json.js.map +1 -0
- package/dist/utils/template-fetcher.d.ts +150 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +907 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +123 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +375 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/dist/utils/uninstall-scrubbers.d.ts +30 -0
- package/dist/utils/uninstall-scrubbers.d.ts.map +1 -0
- package/dist/utils/uninstall-scrubbers.js +196 -0
- package/dist/utils/uninstall-scrubbers.js.map +1 -0
- package/dist/utils/update-rollout-report.d.ts +171 -0
- package/dist/utils/update-rollout-report.d.ts.map +1 -0
- package/dist/utils/update-rollout-report.js +126 -0
- package/dist/utils/update-rollout-report.js.map +1 -0
- package/dist/utils/validate-rules.d.ts +21 -0
- package/dist/utils/validate-rules.d.ts.map +1 -0
- package/dist/utils/validate-rules.js +88 -0
- package/dist/utils/validate-rules.js.map +1 -0
- package/dist/utils/workflow-dir.d.ts +15 -0
- package/dist/utils/workflow-dir.d.ts.map +1 -0
- package/dist/utils/workflow-dir.js +33 -0
- package/dist/utils/workflow-dir.js.map +1 -0
- package/dist/utils/workflow-resolver.d.ts +86 -0
- package/dist/utils/workflow-resolver.d.ts.map +1 -0
- package/dist/utils/workflow-resolver.js +265 -0
- package/dist/utils/workflow-resolver.js.map +1 -0
- package/package.json +117 -0
- package/scripts/postinstall.js +6 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Prototype Guide(原型纪律)
|
|
2
|
+
|
|
3
|
+
> **Purpose**: 用一次性代码回答**设计问题**——先写清问题,再由问题决定原型形态;答案折叠进真实代码(**重写不 mv**),原型留证后清理,不留工作区腐烂。默认形态 **LOGIC / Python 单脚本**;若项目有 UI 面,UI 原型按项目约定执行(见 §5 / §6)。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Purpose / When to use
|
|
8
|
+
|
|
9
|
+
**原型是一次性代码,回答一个设计问题。** 什么时候用:
|
|
10
|
+
|
|
11
|
+
- 要验证某个**机制 / 状态模型 / 算法**「感不感觉对」——在纸上难推演的 case,跑起来看证据。
|
|
12
|
+
- 要在 design / prd 落结论前,先对「如果……会怎样」拿到可观察的事实。
|
|
13
|
+
- 结论已知会写回真实代码,但想让实现者先摸一遍形状。
|
|
14
|
+
|
|
15
|
+
原型唯一的产出是**答案**,不是代码。
|
|
16
|
+
|
|
17
|
+
## 2. Non-goals
|
|
18
|
+
|
|
19
|
+
- **不接真实 DB / 服务**:原型依赖一律假数据 / 内存 / 显式标记的临时本地文件。
|
|
20
|
+
- **不直接升生产**:原型的代码路径不是生产代码的捷径;折叠时**重写**,不 `mv`。
|
|
21
|
+
- **不做 UI(默认)**:默认形态是 LOGIC / Python 单脚本;除非项目明确有 UI 面且约定 UI 原型(见 §6)。
|
|
22
|
+
- **不替代测试 / 调试 / 需求发现**:见 §12 边界(单向链)。
|
|
23
|
+
|
|
24
|
+
## 3. Hard rules
|
|
25
|
+
|
|
26
|
+
1. **问题决定形态** — 先写设计问题,再选原型形态;问题写不清,先不写代码。
|
|
27
|
+
2. **丢弃式(throwaway)** — 从第一天起就是一次性:不接真实 DB/服务;**不加测试、不泛化**(可跑即可);默认**无持久化**(或仅临时本地文件且须清理)。
|
|
28
|
+
3. **状态可见** — 每次 action 后打印/记录关键状态(print / 日志 / 简单 TUI),答案从可见状态里读出来。
|
|
29
|
+
4. **答案折叠** — 结论写回 design / prd / 真实代码;原型代码本身**不提升**为生产代码,折叠时在真实 module 里**重写**,不 `mv`。
|
|
30
|
+
5. **留证后可清理** — 答案折叠 + 留证完成后,删除工作区里的原型(§9 / §10),不留腐烂。
|
|
31
|
+
|
|
32
|
+
## 4. Step 0 — Write the design question
|
|
33
|
+
|
|
34
|
+
开始前写一句话,并放进原型文件头:
|
|
35
|
+
|
|
36
|
+
> 这个原型要回答:____________
|
|
37
|
+
|
|
38
|
+
回答不了这个问题,就说明原型还没开始对。
|
|
39
|
+
|
|
40
|
+
## 5. Shape: LOGIC(Python)— default
|
|
41
|
+
|
|
42
|
+
默认形态 **LOGIC / Python 单脚本**(可替代单 HTML 默认;项目无 UI 面时即此形态):
|
|
43
|
+
|
|
44
|
+
- **单个可运行脚本**,路径二选一:
|
|
45
|
+
- `.tmp/prototypes/<slug>/run.py`(工作区 scratch;**惰性创建,不预建空目录**)
|
|
46
|
+
- 任务 `research/prototype-<slug>.py`(工作位置即留证位置,见 §9)
|
|
47
|
+
- **逻辑与 demo 入口分离**:文件内分两段——
|
|
48
|
+
- `# --- logic (portable) ---`:纯逻辑函数(无副作用、依赖从参数注入),折叠时可提起进真实代码
|
|
49
|
+
- `# --- demo entry ---`:构造输入、调用、打印状态,只服务于「跑起来看答案」
|
|
50
|
+
- **运行**:`python run.py` 即得可观察输出,无额外步骤。
|
|
51
|
+
- 最小骨架示例见 §13。
|
|
52
|
+
|
|
53
|
+
## 6. Shape: UI — opt-in by project convention
|
|
54
|
+
|
|
55
|
+
默认**不做 UI 原型**(LOGIC / Python 单脚本优先)。仅当项目明确有 UI 面且已有 UI 原型约定时,才按项目约定写 UI 脚手架 / UI 变体原型;否则**不写 UI 脚手架**、不做 UI 变体原型、不引入 UI 分支。若不确定项目是否需要 UI 原型,先问,不默认开写。
|
|
56
|
+
|
|
57
|
+
## 7. Visibility of state
|
|
58
|
+
|
|
59
|
+
原型回答问题的机制必须**可观察**:
|
|
60
|
+
|
|
61
|
+
- 每次 action 后打印完整相关状态,不省略中间态。
|
|
62
|
+
- 关键分支打印路径标签;比较类问题打印两侧差异。
|
|
63
|
+
- 输出讲不清 → 答案就落不进 design。
|
|
64
|
+
|
|
65
|
+
## 8. Capture the answer → fold into real code
|
|
66
|
+
|
|
67
|
+
原型结束后两件事:
|
|
68
|
+
|
|
69
|
+
1. **折叠答案**:把结论(问题 + 判定 + 理由)写回 design / prd / 真实代码;代码折叠时在真实 module 里**重写** logic 段(贴合真实接口与错误处理),**不 `mv` 原型文件升生产**。
|
|
70
|
+
2. **留证原型**(primary source,可回看「当时怎么答的」)——见 §9。
|
|
71
|
+
|
|
72
|
+
## 9. Evidence(留证:throwaway 分支 / 路径快照)
|
|
73
|
+
|
|
74
|
+
两层留证机制,**清理前必须确认留证已落**:
|
|
75
|
+
|
|
76
|
+
| 层 | 手段 | 适用 |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| A | git **throwaway 分支**提交(如 `proto/<slug>`,离开 main),留上下文指针 | git 仓库 |
|
|
79
|
+
| B | **路径快照**:复制到 `.pactile/tasks/<task>/research/prototype-<slug>.py`(或任务目录等价位置),并在 handoff.md / verify.md 记录路径 | **非 git 仓库的默认手段** |
|
|
80
|
+
|
|
81
|
+
- 工作位置本身是任务 `research/prototype-<slug>.py` 时,即工作即留证,无需再复制。
|
|
82
|
+
- A / B 可并用。
|
|
83
|
+
|
|
84
|
+
## 10. Cleanup / archive(清理:不留腐烂)
|
|
85
|
+
|
|
86
|
+
- **何时**:答案已折叠 + 留证已落,原型不再需要。
|
|
87
|
+
- **做什么**:删除 `.tmp/prototypes/<slug>/`——scratch 工作区不留腐烂;若原型躺在任务 `research/` 下,那本身就是留证,保留并按任务归档机制处理。
|
|
88
|
+
- **不做**:把原型当长期分支 / 常驻目录养;在 main 上留下 throwaway 痕迹。
|
|
89
|
+
|
|
90
|
+
## 11. Anti-patterns(反模式清单)
|
|
91
|
+
|
|
92
|
+
| 反模式 | 信号 | 修正 |
|
|
93
|
+
| --- | --- | --- |
|
|
94
|
+
| 过早泛化 | 加参数 / 抽象 / 配置,问题还没回答完 | 回到最小:只够回答问题 |
|
|
95
|
+
| 接生产依赖 | 连真实 DB / 服务 / 凭据 | 假数据 / 内存 / 显式临时文件 |
|
|
96
|
+
| 当长期分支养 | 原型分支 / 目录持续叠加功能、迟迟不折叠 | 答案到手即折叠 + 清理 |
|
|
97
|
+
| 在本项目启用 UI 分支 | 写 UI 脚手架 / UI 变体原型 | 默认不做 UI 原型;项目有 UI 约定时按 §6 执行 |
|
|
98
|
+
| `mv` 升生产 | 原型文件直接改名 / 移入真实路径 | 折叠时重写进真实 module |
|
|
99
|
+
| 答案不留证 | 跑完即删、结论没落任何地方 | §8 折叠 + §9 留证先行 |
|
|
100
|
+
|
|
101
|
+
## 12. Relation to debug-loop / test-discipline / brainstorm(边界,单向链)
|
|
102
|
+
|
|
103
|
+
- **Debug Loop Guide**:debug-loop 用 throwaway harness 回答「**为什么坏了**」(bug / 性能回归,诊断进行中);原型回答「**这个设计 / 机制对不对**」(尚无 bug,设计前)。原型**不替代**调试纪律。
|
|
104
|
+
- **Test Discipline Guide**:test-discipline 管生产测试写作(pre-agreed seams、反模式、mock 边界);原型**不加测试**(可跑即可)。原型**不替代**测试纪律。
|
|
105
|
+
- **brainstorm**:brainstorm 管需求发现(用户想要什么);原型管设计验证(机制怎么实现才对)。原型**不替代** brainstorm。
|
|
106
|
+
- 衔接点:原型的可运行骨架可能成为 debug-loop 反馈环的起点或真实测试的输入样例——那是**下游复用**,不是原型的职责。
|
|
107
|
+
|
|
108
|
+
## 13. Minimal skeleton(LOGIC, Python)
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
# prototype: <slug> — throwaway,回答:「________________」 (§4 设计问题)
|
|
112
|
+
# 运行: python run.py;不接真实依赖;答案折叠后清理或留证(§9/§10)
|
|
113
|
+
|
|
114
|
+
# --- logic (portable) ---
|
|
115
|
+
def next_state(current: str, event: str) -> str:
|
|
116
|
+
transitions = {
|
|
117
|
+
("idle", "start"): "running",
|
|
118
|
+
("running", "stop"): "stopped",
|
|
119
|
+
}
|
|
120
|
+
return transitions.get((current, event), current)
|
|
121
|
+
|
|
122
|
+
# --- demo entry ---
|
|
123
|
+
if __name__ == "__main__":
|
|
124
|
+
state = "idle"
|
|
125
|
+
for event in ["start", "pause", "stop"]:
|
|
126
|
+
state = next_state(state, event)
|
|
127
|
+
print(f"{event:>8} -> {state}") # 状态可见:每次 action 后打印
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## 14. Checklist
|
|
131
|
+
|
|
132
|
+
- [ ] §4 设计问题已写清(一句话,在文件头)
|
|
133
|
+
- [ ] 形态:LOGIC / Python 单脚本;UI 原型仅按项目约定(默认不做)
|
|
134
|
+
- [ ] 不接真实 DB / 服务;无持久化(或显式临时文件且会清理)
|
|
135
|
+
- [ ] 无测试、无泛化——可跑即可
|
|
136
|
+
- [ ] 状态可见:关键状态每次 action 后打印
|
|
137
|
+
- [ ] 答案已折叠(写回 design / prd / 真实代码;**重写不 mv**)
|
|
138
|
+
- [ ] 留证已落(git throwaway 分支,或非 git 路径快照到任务 `research/`)
|
|
139
|
+
- [ ] 清理完成:`.tmp/prototypes/<slug>/` 已删,无工作区腐烂
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Test Discipline Guide(测试纪律)
|
|
2
|
+
|
|
3
|
+
> **Purpose**: 定义 PACTILE **测试积木**(任务验证 + 软件测试),以及测试**写作纪律**(pre-agreed seams、垂直切片、三反模式、mock 边界)。积木是自觉,不是墙。**纪律不是 TDD 要求**;也**不是 archive 硬门**。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Purpose — brick + discipline, not TDD
|
|
8
|
+
|
|
9
|
+
本 guide 做两件事,都不要求测试先行:
|
|
10
|
+
|
|
11
|
+
1. **测试积木**(§2):测试 = 任务有没有被 verify 证明 + 软件改动该不该写自动化测试。改动需要测时,模型理应写测、跑测。
|
|
12
|
+
2. **写作纪律**(§4 起):当测试存在时(新写、补写、评审、bug 回归落地),它们应当落在哪、验证什么、不做什么。纪律约束的是测试**质量**,不是测试**时序**。
|
|
13
|
+
|
|
14
|
+
写作纪律本身:
|
|
15
|
+
|
|
16
|
+
- **不要求 red-before-green**。可以先写测试(test-first 是可选的节奏),也可以实现后补测试——纪律在两种时序下同样适用。
|
|
17
|
+
- **不强制 TDD 循环**。本 guide 不定义 red → green → refactor 流程;不设「每个函数必须单测」门槛。
|
|
18
|
+
- 与 [Verification Strength Guide](./verification-strength-guide.md) 兼容:验证**强度**(任务 closeout 要验多深)≠ red-green 仪式;本 guide 管的是「测什么(积木)」和「测试怎么写才值得保留」。
|
|
19
|
+
- 大改端到端走查见 sibling [E2E Walkthrough Guide](./e2e-walkthrough-guide.md);小改不强制。走查**不是** Close 硬门。
|
|
20
|
+
|
|
21
|
+
> 一句话:**先确认测点(seam),再写测试;测试验公共行为,不验实现。需要测的改动理应写测跑测——这是积木,不是 archive 墙。**
|
|
22
|
+
|
|
23
|
+
## 2. Testing brick(积木,不是墙)
|
|
24
|
+
|
|
25
|
+
测试积木有两层,缺一不可混为一谈:
|
|
26
|
+
|
|
27
|
+
| 层 | 是什么 | 典型落点 | 机器是否强制 |
|
|
28
|
+
| --- | --- | --- | --- |
|
|
29
|
+
| **任务验证** | 这次任务有没有被证明做完 | `verify.md` / Evidence(P06 按 rigor 要求的深度) | 仅当该 rigor 已要求 evidence 时(verify-basic 等既有接口);**不是**「必须有自动化测试才能 archive」 |
|
|
30
|
+
| **软件测试** | 这次代码改动会不会把行为改坏 | 项目既有测试框架里的自动化测试 | **否**。需要测时模型**理应**写测、跑测;失败只报告。不把「有测试 / 测试绿」做成 archive / Close 硬门 |
|
|
31
|
+
|
|
32
|
+
**何时理应写测跑测(自觉,不是门):** 改动能破坏可观察行为——CLI/API 契约、gate 签名、kernel extras、归档路径、解析/校验、错误处理。文档-only / 错别字 / 纯注释通常不需要软件测试;任务验证仍按 P06 写 `verify.md`。
|
|
33
|
+
|
|
34
|
+
**重点覆盖(优先于实现耦合断言):**
|
|
35
|
+
|
|
36
|
+
| 焦点 | 问什么 | 例子(思维提示,不是强制矩阵) |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| **边界条件** | 空、缺、满、首尾、档位切换时行为是否仍对 | 空 `task_data`、缺 `verify.md`、150 token 截断、Lite vs Full |
|
|
39
|
+
| **异常处理** | 失败是否可观察、是否吞掉、是否误挡 Close | kernel CLI 缺失、畸形 JSON、缺 Notes **不挡** Close(P41) |
|
|
40
|
+
| **性能瓶颈** | 预算与放大是否把主路径拖死 | 摘要截断、Parent 带子任务归档、过大 `verify.md` |
|
|
41
|
+
| **安全风险** | 不可信路径 / 密钥 / 注入是否进产物 | 任务路径穿越、`verify.md` / 投影里的密钥、未校验的外部输入 |
|
|
42
|
+
|
|
43
|
+
**不是墙:** 本积木**不**把软件测试变成 Close / `task.py archive` 硬门。失效边界仍在:测试靠自觉,无新的机器兜底。既有 kernel 接口护栏(如 `.pactile/scripts/common/test_task_gates.py`)保留——那是接口完整性测试,不是本积木新加的门。
|
|
44
|
+
|
|
45
|
+
与写作纪律的关系:积木决定**要不要测、测哪类风险**;§4–§8 决定**测点落在 seam、不 tautological、不 mock 内部**。
|
|
46
|
+
|
|
47
|
+
## 3. Non-goals
|
|
48
|
+
|
|
49
|
+
- **不是 TDD 手册**:不要求测试先行,不要求红-绿循环,不把 red-before-green 写成强制流程。
|
|
50
|
+
- **不是 archive / Close 硬门**:不恢复测试硬门;走查失败不得接入 `task.py archive` 硬失败。
|
|
51
|
+
- **不选型**:不规定 pytest 以外的框架,不做 mock 库选型。
|
|
52
|
+
- **不替代 Verification Strength Guide**:验证强度(closeout 深度 / false-green 探针)由该 guide 管;本 guide 管积木定义与测试写作。不重写 P06。
|
|
53
|
+
- **不替代 Debug Loop Guide Phase 5**:bug 驱动的回归落地由 debug-loop 管,本 guide 只定义何为 good seam(见 §10)。
|
|
54
|
+
- **不替代 E2E Walkthrough Guide**:kernel / archive / 投影 / 任务生命周期接口的大改走查由 sibling 管。
|
|
55
|
+
|
|
56
|
+
## 4. What a good test is
|
|
57
|
+
|
|
58
|
+
好测试的判据,对每次测试写作生效:
|
|
59
|
+
|
|
60
|
+
- **通过公共 interface 验行为,不验实现细节**。module 可以完全重写,测试不该跟着改;测试关心调用者能获得什么行为,不关心内部怎么拼。
|
|
61
|
+
- **读起来像规格**。测试名描述能力(「用户可以用有效购物车结账」),读者从测试就能看出 module 支持什么。
|
|
62
|
+
- **耐重构**。重构后行为不变,测试仍绿;只有行为真正变化时才变红。
|
|
63
|
+
- **期望值来自独立事实源**。已知字面量、手算样例、规格值——不是用实现同款方式重算(见 §7 tautological)。
|
|
64
|
+
- **优先边界 / 异常 / 性能 / 安全**,而不是堆「实现怎么写就怎么断言」。
|
|
65
|
+
|
|
66
|
+
## 5. Seams(pre-agreed)
|
|
67
|
+
|
|
68
|
+
**seam**(词汇与 CONTEXT.md architecture 段一致):*不改动原处即可改变行为的位置*。测试在 seam 处通过 interface 观察行为,绝不伸手进内部。
|
|
69
|
+
|
|
70
|
+
**只在 pre-agreed seam 写测试。** 写任何测试之前:
|
|
71
|
+
|
|
72
|
+
1. **列出待测 seam 清单**:要测哪些 module 的哪个 interface、每条验什么行为。
|
|
73
|
+
2. **与用户确认**。未确认的 seam 不写测试。
|
|
74
|
+
3. 确认时按此排序:**优先既有 seam**(已有接口 / 既有测试点,不为测试新建结构);**尽量高位 seam**(越接近用户行为越好——一条高位测试覆盖多个低位实现);**少而精**(宁可一条高位测试,不要十条内部断言)。
|
|
75
|
+
|
|
76
|
+
你不可能测完一切——预先同意 seam,是把测试力气花在关键路径和复杂逻辑上,而不是每个边角。
|
|
77
|
+
|
|
78
|
+
> 问句:「公共 interface 是什么?我们要测哪些 seam?」——接口形状本身有疑问时(module 多深、seam 该在哪),先做设计,再定测点。
|
|
79
|
+
|
|
80
|
+
## 6. Vertical slices(tracer bullets)
|
|
81
|
+
|
|
82
|
+
**一测 → 一段最小实现 → 重复**:
|
|
83
|
+
|
|
84
|
+
1. 一个 seam、一条测试(tracer bullet)。
|
|
85
|
+
2. 只写让这条测试通过的最小实现。
|
|
86
|
+
3. 重复,让每条新测试回应上一条循环学到的形状。
|
|
87
|
+
|
|
88
|
+
**禁止 horizontal bulk**——先写完全部测试再实现。横向批量的危害:测试验证的是**想象的行为**(测的是形状而不是用户行为)、对真实变化不敏感、实现还没理解就锁死了测试结构。
|
|
89
|
+
|
|
90
|
+
垂直切片在测试**写作**上同样成立:不要在动手前批量铺测试,一条一条来。
|
|
91
|
+
|
|
92
|
+
## 7. Anti-patterns(三反模式)
|
|
93
|
+
|
|
94
|
+
### Implementation-coupled(实现耦合)
|
|
95
|
+
|
|
96
|
+
mock 内部协作对象、测私有方法、或旁路验证(绕过 interface 直接查库 / 读内部状态)。
|
|
97
|
+
|
|
98
|
+
- 识别信号:重构后测试变红但行为没变;测试名描述 HOW 不描述 WHAT;断言调用次数 / 调用顺序。
|
|
99
|
+
- 反例:`create_user` 后直接查库验入库——应通过 interface 验「创建后能取回」。
|
|
100
|
+
- 修正:回到 §4——只通过公共 interface 观察行为。
|
|
101
|
+
|
|
102
|
+
### Tautological(同义反复)
|
|
103
|
+
|
|
104
|
+
期望值用与实现相同的方式重算,passes by construction——测试永远不可能与代码不一致,因为它复述了代码。
|
|
105
|
+
|
|
106
|
+
- 识别信号:期望值是 reduce / 拼接 / 同式重算;快照由实现同款手工推出;常量断言等于它自己。
|
|
107
|
+
- 反例:`expect(total([10, 5])).toBe(items.reduce(...))`——期望值就是实现。
|
|
108
|
+
- 修正:期望值必须来自独立事实源——已知字面量(`expect(total([10, 5])).toBe(15)`)、手算样例、规格值。
|
|
109
|
+
|
|
110
|
+
### Horizontal slicing(横向切片)
|
|
111
|
+
|
|
112
|
+
先写全部测试再实现;按层横切而不是按用户行为竖切。
|
|
113
|
+
|
|
114
|
+
- 识别信号:测试一次性铺满所有层级(API 层全部 → 服务层全部 → …);测试对象是「形状」而非行为;实现未动时测试结构已锁定。
|
|
115
|
+
- 修正:回到 §6 垂直切片。
|
|
116
|
+
|
|
117
|
+
## 8. Mock boundaries
|
|
118
|
+
|
|
119
|
+
**只在系统边界 mock**:
|
|
120
|
+
|
|
121
|
+
- 外部 API(支付、邮件等)
|
|
122
|
+
- DB(**优先用测试库**,mock DB 是退路)
|
|
123
|
+
- 时间 / 随机性
|
|
124
|
+
- 文件系统(视情况)
|
|
125
|
+
|
|
126
|
+
**不 mock**:
|
|
127
|
+
|
|
128
|
+
- 自己的 module / 内部协作对象
|
|
129
|
+
- 任何我们控制的东西
|
|
130
|
+
|
|
131
|
+
为可 mock 性设计接口:
|
|
132
|
+
|
|
133
|
+
- **DI 优于内部 `new`**:外部依赖从参数传入,而不是在实现里创建:
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
# 易 mock:依赖注入
|
|
137
|
+
def process_payment(order, payment_client):
|
|
138
|
+
return payment_client.charge(order.total)
|
|
139
|
+
|
|
140
|
+
# 难 mock:实现内部创建
|
|
141
|
+
def process_payment(order):
|
|
142
|
+
client = PaymentClient(os.environ["PAYMENT_KEY"])
|
|
143
|
+
return client.charge(order.total)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
- **SDK 式接口优于通用 fetcher**:每个外部操作用独立函数(`get_user(id)` / `create_order(data)`),而不是一个带条件分支的通用 `fetch(endpoint, opts)`。每个 mock 返回一种确定形状,测试设置里没有条件逻辑,也容易看出测试走了哪个端点。
|
|
147
|
+
|
|
148
|
+
## 9. Relation to verification-strength-guide
|
|
149
|
+
|
|
150
|
+
- Verification Strength Guide 管验证**强度**:任务 closeout 要验多深、false-green 探针,且明确 **not TDD**(§1 Non-goals:不产品化 red-green 仪式、无 per-function 单测门槛)。
|
|
151
|
+
- 本 guide 管测试**积木**(任务验证 + 软件测试)和测试**写作质量**:测试存在时,落在 pre-agreed seam、验公共行为、避开三反模式。
|
|
152
|
+
- 二者正交、兼容:按验证强度选验证深度;按本 guide 决定要不要写软件测试、以及怎么写。**验证强度 ≠ red-green 仪式。本片不重写 P06。**
|
|
153
|
+
|
|
154
|
+
## 10. Relation to debug-loop Phase 5(衔接不吞并)
|
|
155
|
+
|
|
156
|
+
[Debug Loop Guide](./debug-loop-guide.md) Phase 5 的回归是 **bug 驱动**:把最小复现冻结成测试或可重复命令,且必须落在 **correct seam**(在真实调用点复现真实 bug 模式)。
|
|
157
|
+
|
|
158
|
+
- **bug 回归走 debug-loop**:Phase 5 决定「把这个 bug 锁在哪个 seam」,本 guide 不接管闭环流程。
|
|
159
|
+
- **通用测试写作走本 guide**:新功能、补测、评审由本 guide 管(pre-agreed seam、反模式、mock 边界)。
|
|
160
|
+
- 衔接点:Phase 5 判定 correct seam 时,引用的正是本 guide 的 good seam 概念与反模式——**衔接不吞并**:bug 驱动回归 ≠ 通用测试写作,两者各有入口,互不替代。
|
|
161
|
+
|
|
162
|
+
## 11. Relation to e2e walkthrough
|
|
163
|
+
|
|
164
|
+
大改(kernel / archive / `notes_projection` / 任务生命周期接口)必须按 [E2E Walkthrough Guide](./e2e-walkthrough-guide.md) 走一遍 `prd → 实现 → verify → archive → 检查投影落盘`。小改不强制。走查约定与可选检查脚本**不是** Close 硬门,也不替代 `test_task_gates.py` 接口护栏。
|
|
165
|
+
|
|
166
|
+
## 12. Checklist before writing tests
|
|
167
|
+
|
|
168
|
+
写测试前确认:
|
|
169
|
+
|
|
170
|
+
- [ ] 已分清两层:任务验证(`verify.md`)vs 软件测试(自动化);本次改动若能破坏行为,理应写测跑测
|
|
171
|
+
- [ ] 优先覆盖边界 / 异常 / 性能 / 安全,而不是实现耦合断言
|
|
172
|
+
- [ ] 不把「有测试」当成 archive / Close 门槛
|
|
173
|
+
- [ ] seam 清单已列出并与用户确认(**未确认的 seam 不写测试**)
|
|
174
|
+
- [ ] 优先既有 seam / 高位 seam / 少而精
|
|
175
|
+
- [ ] 测试通过公共 interface 验行为(不是私有方法、不是内部协作对象)
|
|
176
|
+
- [ ] 期望值来自独立事实源(已知字面量 / 样例 / 规格),不是实现同款重算
|
|
177
|
+
- [ ] mock 只在系统边界;自己的 module 不 mock;依赖经 DI 注入
|
|
178
|
+
- [ ] 一次一条垂直切片(一测 → 最小实现 → 重复),不做横向批量
|
|
179
|
+
- [ ] 大改 kernel/archive/投影/生命周期接口时,另见 [E2E Walkthrough Guide](./e2e-walkthrough-guide.md)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Workspace Index
|
|
2
|
+
|
|
3
|
+
> Records of all AI Agent work records across all developers
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
This directory tracks records for all developers working with AI Agents on this project.
|
|
10
|
+
|
|
11
|
+
### File Structure
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
workspace/
|
|
15
|
+
|-- index.md # This file - main index
|
|
16
|
+
+-- {developer}/ # Per-developer directory
|
|
17
|
+
|-- index.md # Personal index with session history
|
|
18
|
+
|-- tasks/ # Task files
|
|
19
|
+
| |-- *.json # Active tasks
|
|
20
|
+
| +-- archive/ # Archived tasks by month
|
|
21
|
+
+-- journal-N.md # Journal files (sequential: 1, 2, 3...)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Active Developers
|
|
27
|
+
|
|
28
|
+
| Developer | Last Active | Sessions | Active File |
|
|
29
|
+
|-----------|-------------|----------|-------------|
|
|
30
|
+
| (none yet) | - | - | - |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Getting Started
|
|
35
|
+
|
|
36
|
+
### For New Developers
|
|
37
|
+
|
|
38
|
+
Run the initialization script:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
python3 ./.pactile/scripts/init_developer.py <your-name>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This will:
|
|
45
|
+
1. Create your identity file (gitignored)
|
|
46
|
+
2. Create your progress directory
|
|
47
|
+
3. Create your personal index
|
|
48
|
+
4. Create initial journal file
|
|
49
|
+
|
|
50
|
+
### For Returning Developers
|
|
51
|
+
|
|
52
|
+
1. Get your developer name:
|
|
53
|
+
```bash
|
|
54
|
+
python3 ./.pactile/scripts/get_developer.py
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
2. Read your personal index:
|
|
58
|
+
```bash
|
|
59
|
+
cat .pactile/workspace/$(python3 ./.pactile/scripts/get_developer.py)/index.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Guidelines
|
|
65
|
+
|
|
66
|
+
### Journal File Rules
|
|
67
|
+
|
|
68
|
+
- **Max 2000 lines** per journal file
|
|
69
|
+
- When limit is reached, create `journal-{N+1}.md`
|
|
70
|
+
- Update your personal `index.md` when creating new files
|
|
71
|
+
|
|
72
|
+
### Session Record Format
|
|
73
|
+
|
|
74
|
+
Each session should include:
|
|
75
|
+
- Summary: One-line description
|
|
76
|
+
- Branch: Which branch the work was done on
|
|
77
|
+
- Main Changes: What was modified
|
|
78
|
+
- Git Commits: Commit hashes and messages
|
|
79
|
+
- Next Steps: What to do next
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Session Template
|
|
84
|
+
|
|
85
|
+
Use this template when recording sessions:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Session {N}: {Title}
|
|
89
|
+
|
|
90
|
+
**Date**: YYYY-MM-DD
|
|
91
|
+
**Task**: {task-name}
|
|
92
|
+
**Branch**: `{branch-name}`
|
|
93
|
+
|
|
94
|
+
### Summary
|
|
95
|
+
|
|
96
|
+
{One-line summary}
|
|
97
|
+
|
|
98
|
+
### Main Changes
|
|
99
|
+
|
|
100
|
+
- {Change 1}
|
|
101
|
+
- {Change 2}
|
|
102
|
+
|
|
103
|
+
### Git Commits
|
|
104
|
+
|
|
105
|
+
| Hash | Message |
|
|
106
|
+
|------|---------|
|
|
107
|
+
| `abc1234` | {commit message} |
|
|
108
|
+
|
|
109
|
+
### Testing
|
|
110
|
+
|
|
111
|
+
- [OK] {Test result}
|
|
112
|
+
|
|
113
|
+
### Status
|
|
114
|
+
|
|
115
|
+
[OK] **Completed** / # **In Progress** / [P] **Blocked**
|
|
116
|
+
|
|
117
|
+
### Next Steps
|
|
118
|
+
|
|
119
|
+
- {Next step 1}
|
|
120
|
+
- {Next step 2}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
**Language**: All documentation must be written in **English**.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Worktree Configuration for Multi-Agent Pipeline
|
|
2
|
+
# Used for worktree initialization in multi-agent workflows
|
|
3
|
+
#
|
|
4
|
+
# All paths are relative to project root
|
|
5
|
+
|
|
6
|
+
#-------------------------------------------------------------------------------
|
|
7
|
+
# Paths
|
|
8
|
+
#-------------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
# Worktree storage directory (relative to project root)
|
|
11
|
+
# Recommended: keep worktrees outside the main repo to avoid conflicts
|
|
12
|
+
worktree_dir: ../<project-name>-worktrees
|
|
13
|
+
|
|
14
|
+
#-------------------------------------------------------------------------------
|
|
15
|
+
# Files to Copy
|
|
16
|
+
#-------------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
# Files to copy to each worktree (each worktree needs independent copy)
|
|
19
|
+
# These files contain sensitive info or need worktree-independent config
|
|
20
|
+
copy:
|
|
21
|
+
# Environment variables (uncomment and customize as needed)
|
|
22
|
+
# - .env
|
|
23
|
+
# - .env.local
|
|
24
|
+
# Workflow config
|
|
25
|
+
- .pactile/.developer
|
|
26
|
+
|
|
27
|
+
#-------------------------------------------------------------------------------
|
|
28
|
+
# Post-Create Hooks
|
|
29
|
+
#-------------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
# Commands to run after creating worktree
|
|
32
|
+
# Executed in worktree directory, in order, abort on failure
|
|
33
|
+
post_create:
|
|
34
|
+
# Install dependencies (uncomment based on your package manager)
|
|
35
|
+
# - npm install
|
|
36
|
+
# - pnpm install --frozen-lockfile
|
|
37
|
+
# - yarn install --frozen-lockfile
|
|
38
|
+
# - pip install -r requirements.txt
|
|
39
|
+
# - bundle install
|
|
40
|
+
# - cargo build
|
|
41
|
+
|
|
42
|
+
#-------------------------------------------------------------------------------
|
|
43
|
+
# Pre-Merge Checks
|
|
44
|
+
#-------------------------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
# Pre-merge validation (used by create_pr.py)
|
|
47
|
+
pre_merge:
|
|
48
|
+
# Type checking (uncomment based on your setup)
|
|
49
|
+
# - npm run typecheck
|
|
50
|
+
# - pnpm typecheck
|
|
51
|
+
# - mypy .
|
|
52
|
+
# Linting
|
|
53
|
+
# - npm run lint
|
|
54
|
+
# - pnpm lint
|
|
55
|
+
# - ruff check .
|
|
56
|
+
# Testing
|
|
57
|
+
# - npm test
|
|
58
|
+
# - pytest
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# CONTEXT
|
|
2
|
+
|
|
3
|
+
Project domain glossary — the single source of truth for project-specific terms used in this repository. Read **on demand** when project terms matter (e.g. before planning questions, PRD writing, or check reviews); **never always-inject** — this file stays out of the automatic session prompt budget.
|
|
4
|
+
|
|
5
|
+
Only project-specific concepts belong here; generic programming concepts already documented under `.pactile/` do not need entries. Each entry: term + one-line definition + `_Avoid_` aliases when a common synonym causes confusion. Language follows `artifact_locale` (en → English only; zh → Chinese terms with English gloss). Seed below is bilingual so either locale can start from the same file; delete entries that do not apply.
|
|
6
|
+
|
|
7
|
+
## Governance domain seed
|
|
8
|
+
|
|
9
|
+
Optional starting set for the review-pool vocabulary — delete entries that do not apply:
|
|
10
|
+
|
|
11
|
+
**点子** (_idea_):
|
|
12
|
+
Undecided development direction or improvement; a candidate for the review pool.
|
|
13
|
+
_Avoid_: requirement, thought
|
|
14
|
+
|
|
15
|
+
**不足** (_debt_):
|
|
16
|
+
Confirmed but unresolved gap found in review or verification.
|
|
17
|
+
_Avoid_: issue, bug (unless it is a tracked defect elsewhere)
|
|
18
|
+
|
|
19
|
+
**审核池** (_review pool_):
|
|
20
|
+
Inbox for ideas and debt; states inbox / review / accepted / rejected / rework.
|
|
21
|
+
_Avoid_: backlog, idea dump
|
|
22
|
+
|
|
23
|
+
**开发计划** (_dev plan_):
|
|
24
|
+
Plan file: accepted item ids + order + blocking edges + fog. Cite pool ids only.
|
|
25
|
+
_Avoid_: roadmap
|
|
26
|
+
|
|
27
|
+
**可裁决条目** (_adjudicable item_):
|
|
28
|
+
Pool item with intent / motivation / coarse acceptance / non-goals.
|
|
29
|
+
_Avoid_: todo
|
|
30
|
+
|
|
31
|
+
**拒绝知识库** (_knowledge base_):
|
|
32
|
+
Archive of rejected-concept reasons, used to dedupe prior requests.
|
|
33
|
+
_Avoid_: blacklist
|
|
34
|
+
|
|
35
|
+
## Framework domain seed (optional)
|
|
36
|
+
|
|
37
|
+
Optional starting set — delete entries that do not apply to this project:
|
|
38
|
+
|
|
39
|
+
**Task** (_task_):
|
|
40
|
+
PACTILE task, directory under `.pactile/tasks/`, lifecycle planning / in_progress / completed.
|
|
41
|
+
_Avoid_: ticket, issue
|
|
42
|
+
|
|
43
|
+
**PRD** (_product requirements document_):
|
|
44
|
+
Task requirements artifact: Goal / User Stories / Requirements / Acceptance Criteria / Implementation Decisions.
|
|
45
|
+
_Avoid_: spec sheet
|
|
46
|
+
|
|
47
|
+
**Gate** (_gate_):
|
|
48
|
+
Mandatory checkpoint at planning / execution / archive boundaries.
|
|
49
|
+
_Avoid_: —
|
|
50
|
+
|
|
51
|
+
**Evidence** (_evidence_):
|
|
52
|
+
Verification evidence in `verify.md` (command output, paths, acceptance).
|
|
53
|
+
_Avoid_: report
|
|
54
|
+
|
|
55
|
+
**Contract** (_contract_):
|
|
56
|
+
Execution contract in `implement.md` (execution_mode / verification_profile / quality_gates).
|
|
57
|
+
_Avoid_: plan
|
|
58
|
+
|
|
59
|
+
**Child** (_child_):
|
|
60
|
+
Independently verifiable deliverable under a Parent task tree.
|
|
61
|
+
_Avoid_: sub-ticket
|
|
62
|
+
|
|
63
|
+
**artifact_locale** (_artifact locale_):
|
|
64
|
+
Project artifact language setting (en / zh).
|
|
65
|
+
_Avoid_: locale
|
|
66
|
+
|
|
67
|
+
**Task Ladder** (_task ladder_):
|
|
68
|
+
Triage ladder: No Task / Micro-Grill / Lite / Full / Parent.
|
|
69
|
+
_Avoid_: —
|
|
70
|
+
|
|
71
|
+
## Architecture (deep-module vocabulary)
|
|
72
|
+
|
|
73
|
+
Seed for codebase-design terms. Keep these seven; do not treat them as generic programming words.
|
|
74
|
+
|
|
75
|
+
**module** (_module_):
|
|
76
|
+
A unit of any size that has an interface and an implementation.
|
|
77
|
+
_Avoid_: component, service
|
|
78
|
+
|
|
79
|
+
**interface** (_interface_):
|
|
80
|
+
Every fact a caller needs in order to use the module correctly.
|
|
81
|
+
_Avoid_: API, signature
|
|
82
|
+
|
|
83
|
+
**depth** (_depth_):
|
|
84
|
+
Leverage on the interface: how much behavior each unit of interface can drive.
|
|
85
|
+
_Avoid_: abstraction level
|
|
86
|
+
|
|
87
|
+
**seam** (_seam_):
|
|
88
|
+
A place where behavior can change without editing the original site.
|
|
89
|
+
_Avoid_: boundary
|
|
90
|
+
|
|
91
|
+
**adapter** (_adapter_):
|
|
92
|
+
A concrete thing that satisfies an interface at a seam.
|
|
93
|
+
_Avoid_: implementation
|
|
94
|
+
|
|
95
|
+
**leverage** (_leverage_):
|
|
96
|
+
Capability the caller gains from depth.
|
|
97
|
+
_Avoid_: reuse
|
|
98
|
+
|
|
99
|
+
**locality** (_locality_):
|
|
100
|
+
Concentration the maintainer gains from depth (change / knowledge / verification in one place).
|
|
101
|
+
_Avoid_: cohesion
|
|
102
|
+
|
|
103
|
+
## Project glossary
|
|
104
|
+
|
|
105
|
+
Add project-specific terms below (term + one-line definition + `_Avoid_` aliases):
|
|
106
|
+
|
|
107
|
+
| Term | Definition | Avoid |
|
|
108
|
+
| --- | --- | --- |
|
|
109
|
+
| _TBD_ | | |
|
|
110
|
+
|
|
111
|
+
## ADR
|
|
112
|
+
|
|
113
|
+
Architecture decisions live in `docs/adr/` (lazy-created). Write an ADR only when **all three** conditions hold: hard to reverse · would surprise without context · real tradeoff. See `docs/adr/README.md` for the full boundary.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"doc_only_capabilities": [
|
|
4
|
+
"markdown-documentation"
|
|
5
|
+
],
|
|
6
|
+
"code_capabilities": [
|
|
7
|
+
"cli-templates",
|
|
8
|
+
"python-task-scripts",
|
|
9
|
+
"vitest-integration",
|
|
10
|
+
"typescript",
|
|
11
|
+
"python"
|
|
12
|
+
],
|
|
13
|
+
"code_path_segments": [
|
|
14
|
+
"src",
|
|
15
|
+
"packages",
|
|
16
|
+
"scripts",
|
|
17
|
+
"lib"
|
|
18
|
+
],
|
|
19
|
+
"pair_warnings": [
|
|
20
|
+
{
|
|
21
|
+
"execution_mode": "worker",
|
|
22
|
+
"isolation": "git-worktree",
|
|
23
|
+
"message": "worker usually runs in main-worktree; git-worktree is rare for pactile-implement"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"execution_mode": "inline",
|
|
27
|
+
"isolation": "git-worktree",
|
|
28
|
+
"message": "inline + git-worktree is unusual; consider child-task if isolation is intentional"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|