@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
|
@@ -1,179 +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
|
|
44
|
-
|
|
45
|
-
与写作纪律的关系:积木决定**要不要测、测哪类风险**;§4–§8 决定**测点落在 seam、不 tautological、不 mock 内部**。
|
|
46
|
-
|
|
47
|
-
## 3. Non-goals
|
|
48
|
-
|
|
49
|
-
- **不是 TDD 手册**:不要求测试先行,不要求红-绿循环,不把 red-before-green 写成强制流程。
|
|
50
|
-
- **不是 archive / Close 硬门**:不恢复测试硬门;走查失败不得接入 `task
|
|
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
|
-
大改(
|
|
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)
|
|
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 / `pactile task archive` 硬门。失效边界仍在:测试靠自觉,无新的机器兜底。Pactile CLI 的 Kernel 接口护栏保留——那是接口完整性测试,不是本积木新加的门。
|
|
44
|
+
|
|
45
|
+
与写作纪律的关系:积木决定**要不要测、测哪类风险**;§4–§8 决定**测点落在 seam、不 tautological、不 mock 内部**。
|
|
46
|
+
|
|
47
|
+
## 3. Non-goals
|
|
48
|
+
|
|
49
|
+
- **不是 TDD 手册**:不要求测试先行,不要求红-绿循环,不把 red-before-green 写成强制流程。
|
|
50
|
+
- **不是 archive / Close 硬门**:不恢复测试硬门;走查失败不得接入 `pactile task 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 硬门,也不替代 Pactile CLI 的接口测试。
|
|
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)
|
|
@@ -1,125 +1,122 @@
|
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
|
|
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
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
2.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
**Language**: All documentation must be written in **English**.
|
|
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
|
+
Initialize Pactile with your developer identity:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pactile init --user <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
|
+
pactile context --json
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
2. Open `.pactile/workspace/<developer>/index.md` using the name reported in the context JSON.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Guidelines
|
|
62
|
+
|
|
63
|
+
### Journal File Rules
|
|
64
|
+
|
|
65
|
+
- **Max 2000 lines** per journal file
|
|
66
|
+
- When limit is reached, create `journal-{N+1}.md`
|
|
67
|
+
- Update your personal `index.md` when creating new files
|
|
68
|
+
|
|
69
|
+
### Session Record Format
|
|
70
|
+
|
|
71
|
+
Each session should include:
|
|
72
|
+
- Summary: One-line description
|
|
73
|
+
- Branch: Which branch the work was done on
|
|
74
|
+
- Main Changes: What was modified
|
|
75
|
+
- Git Commits: Commit hashes and messages
|
|
76
|
+
- Next Steps: What to do next
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Session Template
|
|
81
|
+
|
|
82
|
+
Use this template when recording sessions:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
## Session {N}: {Title}
|
|
86
|
+
|
|
87
|
+
**Date**: YYYY-MM-DD
|
|
88
|
+
**Task**: {task-name}
|
|
89
|
+
**Branch**: `{branch-name}`
|
|
90
|
+
|
|
91
|
+
### Summary
|
|
92
|
+
|
|
93
|
+
{One-line summary}
|
|
94
|
+
|
|
95
|
+
### Main Changes
|
|
96
|
+
|
|
97
|
+
- {Change 1}
|
|
98
|
+
- {Change 2}
|
|
99
|
+
|
|
100
|
+
### Git Commits
|
|
101
|
+
|
|
102
|
+
| Hash | Message |
|
|
103
|
+
|------|---------|
|
|
104
|
+
| `abc1234` | {commit message} |
|
|
105
|
+
|
|
106
|
+
### Testing
|
|
107
|
+
|
|
108
|
+
- [OK] {Test result}
|
|
109
|
+
|
|
110
|
+
### Status
|
|
111
|
+
|
|
112
|
+
[OK] **Completed** / # **In Progress** / [P] **Blocked**
|
|
113
|
+
|
|
114
|
+
### Next Steps
|
|
115
|
+
|
|
116
|
+
- {Next step 1}
|
|
117
|
+
- {Next step 2}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**Language**: All documentation must be written in **English**.
|