@kynetic-ai/spec 0.1.2 → 0.4.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/README.md +250 -17
- package/dist/acp/client.d.ts +18 -4
- package/dist/acp/client.d.ts.map +1 -1
- package/dist/acp/client.js +44 -26
- package/dist/acp/client.js.map +1 -1
- package/dist/acp/framing.d.ts +2 -2
- package/dist/acp/framing.d.ts.map +1 -1
- package/dist/acp/framing.js +37 -29
- package/dist/acp/framing.js.map +1 -1
- package/dist/acp/index.d.ts +6 -7
- package/dist/acp/index.d.ts.map +1 -1
- package/dist/acp/index.js +3 -3
- package/dist/acp/index.js.map +1 -1
- package/dist/acp/types.d.ts +5 -5
- package/dist/acp/types.d.ts.map +1 -1
- package/dist/acp/types.js +18 -18
- package/dist/acp/types.js.map +1 -1
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/adapters.js +24 -13
- package/dist/agents/adapters.js.map +1 -1
- package/dist/agents/index.d.ts +2 -2
- package/dist/agents/index.js +2 -2
- package/dist/agents/spawner.d.ts +4 -4
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +6 -6
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/batch-context.d.ts +43 -0
- package/dist/cli/batch-context.d.ts.map +1 -0
- package/dist/cli/batch-context.js +93 -0
- package/dist/cli/batch-context.js.map +1 -0
- package/dist/cli/batch-exec.d.ts +107 -0
- package/dist/cli/batch-exec.d.ts.map +1 -0
- package/dist/cli/batch-exec.js +706 -0
- package/dist/cli/batch-exec.js.map +1 -0
- package/dist/cli/batch.d.ts +4 -2
- package/dist/cli/batch.d.ts.map +1 -1
- package/dist/cli/batch.js +15 -14
- package/dist/cli/batch.js.map +1 -1
- package/dist/cli/command-annotations.d.ts +23 -0
- package/dist/cli/command-annotations.d.ts.map +1 -0
- package/dist/cli/command-annotations.js +27 -0
- package/dist/cli/command-annotations.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +46 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +377 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +20 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +214 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/clone-for-testing.d.ts +1 -1
- package/dist/cli/commands/clone-for-testing.d.ts.map +1 -1
- package/dist/cli/commands/clone-for-testing.js +37 -47
- package/dist/cli/commands/clone-for-testing.js.map +1 -1
- package/dist/cli/commands/derive.d.ts +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +141 -88
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +11 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +152 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/export.d.ts +12 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +134 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/help.d.ts +1 -1
- package/dist/cli/commands/help.d.ts.map +1 -1
- package/dist/cli/commands/help.js +163 -37
- package/dist/cli/commands/help.js.map +1 -1
- package/dist/cli/commands/inbox.d.ts +1 -1
- package/dist/cli/commands/inbox.d.ts.map +1 -1
- package/dist/cli/commands/inbox.js +178 -56
- package/dist/cli/commands/inbox.js.map +1 -1
- package/dist/cli/commands/index.d.ts +31 -19
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +31 -19
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +5 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +108 -57
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/item.d.ts +1 -1
- package/dist/cli/commands/item.d.ts.map +1 -1
- package/dist/cli/commands/item.js +557 -274
- package/dist/cli/commands/item.js.map +1 -1
- package/dist/cli/commands/link.d.ts +1 -1
- package/dist/cli/commands/link.d.ts.map +1 -1
- package/dist/cli/commands/link.js +55 -46
- package/dist/cli/commands/link.js.map +1 -1
- package/dist/cli/commands/log.d.ts +1 -1
- package/dist/cli/commands/log.d.ts.map +1 -1
- package/dist/cli/commands/log.js +58 -51
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/merge-driver.d.ts +19 -0
- package/dist/cli/commands/merge-driver.d.ts.map +1 -0
- package/dist/cli/commands/merge-driver.js +398 -0
- package/dist/cli/commands/merge-driver.js.map +1 -0
- package/dist/cli/commands/meta.d.ts +1 -1
- package/dist/cli/commands/meta.d.ts.map +1 -1
- package/dist/cli/commands/meta.js +534 -399
- package/dist/cli/commands/meta.js.map +1 -1
- package/dist/cli/commands/module.d.ts +1 -1
- package/dist/cli/commands/module.d.ts.map +1 -1
- package/dist/cli/commands/module.js +30 -25
- package/dist/cli/commands/module.js.map +1 -1
- package/dist/cli/commands/plan-import.d.ts +11 -0
- package/dist/cli/commands/plan-import.d.ts.map +1 -0
- package/dist/cli/commands/plan-import.js +547 -0
- package/dist/cli/commands/plan-import.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +10 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +421 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/ralph.d.ts +1 -1
- package/dist/cli/commands/ralph.d.ts.map +1 -1
- package/dist/cli/commands/ralph.js +1109 -170
- package/dist/cli/commands/ralph.js.map +1 -1
- package/dist/cli/commands/refs.d.ts +13 -0
- package/dist/cli/commands/refs.d.ts.map +1 -0
- package/dist/cli/commands/refs.js +283 -0
- package/dist/cli/commands/refs.js.map +1 -0
- package/dist/cli/commands/search.d.ts +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +199 -37
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +10 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +491 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/session.d.ts +25 -6
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +810 -127
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/setup-seeding.d.ts +81 -0
- package/dist/cli/commands/setup-seeding.d.ts.map +1 -0
- package/dist/cli/commands/setup-seeding.js +292 -0
- package/dist/cli/commands/setup-seeding.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +77 -3
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +1267 -274
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shadow.d.ts +1 -1
- package/dist/cli/commands/shadow.d.ts.map +1 -1
- package/dist/cli/commands/shadow.js +70 -50
- package/dist/cli/commands/shadow.js.map +1 -1
- package/dist/cli/commands/skill-crud.d.ts +58 -0
- package/dist/cli/commands/skill-crud.d.ts.map +1 -0
- package/dist/cli/commands/skill-crud.js +753 -0
- package/dist/cli/commands/skill-crud.js.map +1 -0
- package/dist/cli/commands/skill-diff.d.ts +27 -0
- package/dist/cli/commands/skill-diff.d.ts.map +1 -0
- package/dist/cli/commands/skill-diff.js +840 -0
- package/dist/cli/commands/skill-diff.js.map +1 -0
- package/dist/cli/commands/skill-install.d.ts +56 -0
- package/dist/cli/commands/skill-install.d.ts.map +1 -0
- package/dist/cli/commands/skill-install.js +509 -0
- package/dist/cli/commands/skill-install.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +20 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +36 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/task.d.ts +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +584 -350
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/tasks.d.ts +26 -1
- package/dist/cli/commands/tasks.d.ts.map +1 -1
- package/dist/cli/commands/tasks.js +225 -122
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/commands/trait.d.ts +1 -1
- package/dist/cli/commands/trait.d.ts.map +1 -1
- package/dist/cli/commands/trait.js +166 -101
- package/dist/cli/commands/trait.js.map +1 -1
- package/dist/cli/commands/triage.d.ts +7 -0
- package/dist/cli/commands/triage.d.ts.map +1 -0
- package/dist/cli/commands/triage.js +483 -0
- package/dist/cli/commands/triage.js.map +1 -0
- package/dist/cli/commands/util.d.ts +7 -0
- package/dist/cli/commands/util.d.ts.map +1 -0
- package/dist/cli/commands/util.js +30 -0
- package/dist/cli/commands/util.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +264 -83
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts +16 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +851 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/exit-codes.d.ts +7 -0
- package/dist/cli/exit-codes.d.ts.map +1 -1
- package/dist/cli/exit-codes.js +26 -18
- package/dist/cli/exit-codes.js.map +1 -1
- package/dist/cli/help/content.d.ts.map +1 -1
- package/dist/cli/help/content.js +86 -71
- package/dist/cli/help/content.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +131 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/introspection.d.ts +6 -2
- package/dist/cli/introspection.d.ts.map +1 -1
- package/dist/cli/introspection.js +11 -8
- package/dist/cli/introspection.js.map +1 -1
- package/dist/cli/output.d.ts +64 -4
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +237 -85
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/parse-utils.d.ts +21 -0
- package/dist/cli/parse-utils.d.ts.map +1 -0
- package/dist/cli/parse-utils.js +32 -0
- package/dist/cli/parse-utils.js.map +1 -0
- package/dist/cli/pid-utils.d.ts +72 -0
- package/dist/cli/pid-utils.d.ts.map +1 -0
- package/dist/cli/pid-utils.js +174 -0
- package/dist/cli/pid-utils.js.map +1 -0
- package/dist/cli/suggest.d.ts.map +1 -1
- package/dist/cli/suggest.js +1 -2
- package/dist/cli/suggest.js.map +1 -1
- package/dist/cli/validators.d.ts +43 -0
- package/dist/cli/validators.d.ts.map +1 -0
- package/dist/cli/validators.js +84 -0
- package/dist/cli/validators.js.map +1 -0
- package/dist/daemon/index.ts +52 -0
- package/dist/daemon/middleware/project-context.ts +126 -0
- package/dist/daemon/pid.ts +179 -0
- package/dist/daemon/project-context.ts +343 -0
- package/dist/daemon/routes/inbox.ts +164 -0
- package/dist/daemon/routes/items.ts +322 -0
- package/dist/daemon/routes/meta.ts +118 -0
- package/dist/daemon/routes/projects.ts +162 -0
- package/dist/daemon/routes/tasks.ts +327 -0
- package/dist/daemon/routes/triage.ts +402 -0
- package/dist/daemon/routes/validation.ts +248 -0
- package/dist/daemon/server.ts +408 -0
- package/dist/daemon/watcher.ts +195 -0
- package/dist/daemon/websocket/handler.ts +138 -0
- package/dist/daemon/websocket/heartbeat.ts +71 -0
- package/dist/daemon/websocket/pubsub.ts +125 -0
- package/dist/daemon/websocket/types.ts +66 -0
- package/dist/export/html.d.ts +19 -0
- package/dist/export/html.d.ts.map +1 -0
- package/dist/export/html.js +239 -0
- package/dist/export/html.js.map +1 -0
- package/dist/export/index.d.ts +10 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/export/index.js +10 -0
- package/dist/export/index.js.map +1 -0
- package/dist/export/json.d.ts +24 -0
- package/dist/export/json.d.ts.map +1 -0
- package/dist/export/json.js +198 -0
- package/dist/export/json.js.map +1 -0
- package/dist/export/triage.d.ts +51 -0
- package/dist/export/triage.d.ts.map +1 -0
- package/dist/export/triage.js +83 -0
- package/dist/export/triage.js.map +1 -0
- package/dist/export/types.d.ts +122 -0
- package/dist/export/types.d.ts.map +1 -0
- package/dist/export/types.js +9 -0
- package/dist/export/types.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/lib/claude-plugin-registry.d.ts +66 -0
- package/dist/lib/claude-plugin-registry.d.ts.map +1 -0
- package/dist/lib/claude-plugin-registry.js +318 -0
- package/dist/lib/claude-plugin-registry.js.map +1 -0
- package/dist/merge/arrays.d.ts +87 -0
- package/dist/merge/arrays.d.ts.map +1 -0
- package/dist/merge/arrays.js +164 -0
- package/dist/merge/arrays.js.map +1 -0
- package/dist/merge/file-type.d.ts +32 -0
- package/dist/merge/file-type.d.ts.map +1 -0
- package/dist/merge/file-type.js +70 -0
- package/dist/merge/file-type.js.map +1 -0
- package/dist/merge/index.d.ts +14 -0
- package/dist/merge/index.d.ts.map +1 -0
- package/dist/merge/index.js +11 -0
- package/dist/merge/index.js.map +1 -0
- package/dist/merge/objects.d.ts +46 -0
- package/dist/merge/objects.d.ts.map +1 -0
- package/dist/merge/objects.js +193 -0
- package/dist/merge/objects.js.map +1 -0
- package/dist/merge/parse.d.ts +23 -0
- package/dist/merge/parse.d.ts.map +1 -0
- package/dist/merge/parse.js +78 -0
- package/dist/merge/parse.js.map +1 -0
- package/dist/merge/resolve.d.ts +66 -0
- package/dist/merge/resolve.d.ts.map +1 -0
- package/dist/merge/resolve.js +189 -0
- package/dist/merge/resolve.js.map +1 -0
- package/dist/merge/types.d.ts +82 -0
- package/dist/merge/types.d.ts.map +1 -0
- package/dist/merge/types.js +8 -0
- package/dist/merge/types.js.map +1 -0
- package/dist/parser/agent-data-sections.d.ts +53 -0
- package/dist/parser/agent-data-sections.d.ts.map +1 -0
- package/dist/parser/agent-data-sections.js +118 -0
- package/dist/parser/agent-data-sections.js.map +1 -0
- package/dist/parser/alignment.d.ts +4 -4
- package/dist/parser/alignment.d.ts.map +1 -1
- package/dist/parser/alignment.js +27 -22
- package/dist/parser/alignment.js.map +1 -1
- package/dist/parser/assess.d.ts +5 -5
- package/dist/parser/assess.d.ts.map +1 -1
- package/dist/parser/assess.js +36 -32
- package/dist/parser/assess.js.map +1 -1
- package/dist/parser/config.d.ts +457 -0
- package/dist/parser/config.d.ts.map +1 -0
- package/dist/parser/config.js +373 -0
- package/dist/parser/config.js.map +1 -0
- package/dist/parser/convention-validation.d.ts +1 -1
- package/dist/parser/convention-validation.d.ts.map +1 -1
- package/dist/parser/convention-validation.js +21 -16
- package/dist/parser/convention-validation.js.map +1 -1
- package/dist/parser/coverage-cache.d.ts +49 -0
- package/dist/parser/coverage-cache.d.ts.map +1 -0
- package/dist/parser/coverage-cache.js +123 -0
- package/dist/parser/coverage-cache.js.map +1 -0
- package/dist/parser/daemon-status.d.ts +37 -0
- package/dist/parser/daemon-status.d.ts.map +1 -0
- package/dist/parser/daemon-status.js +67 -0
- package/dist/parser/daemon-status.js.map +1 -0
- package/dist/parser/doctor.d.ts +107 -0
- package/dist/parser/doctor.d.ts.map +1 -0
- package/dist/parser/doctor.js +366 -0
- package/dist/parser/doctor.js.map +1 -0
- package/dist/parser/fix.d.ts +1 -1
- package/dist/parser/fix.d.ts.map +1 -1
- package/dist/parser/fix.js +31 -27
- package/dist/parser/fix.js.map +1 -1
- package/dist/parser/index.d.ts +16 -11
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +16 -11
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/items.d.ts +8 -2
- package/dist/parser/items.d.ts.map +1 -1
- package/dist/parser/items.js +71 -35
- package/dist/parser/items.js.map +1 -1
- package/dist/parser/meta.d.ts +167 -9
- package/dist/parser/meta.d.ts.map +1 -1
- package/dist/parser/meta.js +379 -46
- package/dist/parser/meta.js.map +1 -1
- package/dist/parser/plan-document.d.ts +197 -0
- package/dist/parser/plan-document.d.ts.map +1 -0
- package/dist/parser/plan-document.js +341 -0
- package/dist/parser/plan-document.js.map +1 -0
- package/dist/parser/plans.d.ts +59 -0
- package/dist/parser/plans.d.ts.map +1 -0
- package/dist/parser/plans.js +239 -0
- package/dist/parser/plans.js.map +1 -0
- package/dist/parser/refs.d.ts +22 -9
- package/dist/parser/refs.d.ts.map +1 -1
- package/dist/parser/refs.js +102 -50
- package/dist/parser/refs.js.map +1 -1
- package/dist/parser/setup-status.d.ts +71 -0
- package/dist/parser/setup-status.d.ts.map +1 -0
- package/dist/parser/setup-status.js +269 -0
- package/dist/parser/setup-status.js.map +1 -0
- package/dist/parser/shadow.d.ts +150 -19
- package/dist/parser/shadow.d.ts.map +1 -1
- package/dist/parser/shadow.js +548 -187
- package/dist/parser/shadow.js.map +1 -1
- package/dist/parser/skill-render.d.ts +317 -0
- package/dist/parser/skill-render.d.ts.map +1 -0
- package/dist/parser/skill-render.js +943 -0
- package/dist/parser/skill-render.js.map +1 -0
- package/dist/parser/traits.d.ts +3 -3
- package/dist/parser/traits.d.ts.map +1 -1
- package/dist/parser/traits.js +2 -2
- package/dist/parser/traits.js.map +1 -1
- package/dist/parser/validate-skills.d.ts +32 -0
- package/dist/parser/validate-skills.d.ts.map +1 -0
- package/dist/parser/validate-skills.js +202 -0
- package/dist/parser/validate-skills.js.map +1 -0
- package/dist/parser/validate.d.ts +45 -3
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +622 -105
- package/dist/parser/validate.js.map +1 -1
- package/dist/parser/yaml.d.ts +83 -19
- package/dist/parser/yaml.d.ts.map +1 -1
- package/dist/parser/yaml.js +478 -173
- package/dist/parser/yaml.js.map +1 -1
- package/dist/ralph/cli-renderer.d.ts +8 -1
- package/dist/ralph/cli-renderer.d.ts.map +1 -1
- package/dist/ralph/cli-renderer.js +105 -34
- package/dist/ralph/cli-renderer.js.map +1 -1
- package/dist/ralph/events.d.ts +10 -10
- package/dist/ralph/events.d.ts.map +1 -1
- package/dist/ralph/events.js +301 -98
- package/dist/ralph/events.js.map +1 -1
- package/dist/ralph/index.d.ts +5 -2
- package/dist/ralph/index.d.ts.map +1 -1
- package/dist/ralph/index.js +9 -3
- package/dist/ralph/index.js.map +1 -1
- package/dist/ralph/loop-errors.d.ts +83 -0
- package/dist/ralph/loop-errors.d.ts.map +1 -0
- package/dist/ralph/loop-errors.js +150 -0
- package/dist/ralph/loop-errors.js.map +1 -0
- package/dist/ralph/subagent.d.ts +94 -0
- package/dist/ralph/subagent.d.ts.map +1 -0
- package/dist/ralph/subagent.js +193 -0
- package/dist/ralph/subagent.js.map +1 -0
- package/dist/ralph/wrap-up.d.ts +125 -0
- package/dist/ralph/wrap-up.d.ts.map +1 -0
- package/dist/ralph/wrap-up.js +270 -0
- package/dist/ralph/wrap-up.js.map +1 -0
- package/dist/schema/batch.d.ts +97 -0
- package/dist/schema/batch.d.ts.map +1 -0
- package/dist/schema/batch.js +24 -0
- package/dist/schema/batch.js.map +1 -0
- package/dist/schema/common.d.ts +8 -2
- package/dist/schema/common.d.ts.map +1 -1
- package/dist/schema/common.js +42 -31
- package/dist/schema/common.js.map +1 -1
- package/dist/schema/inbox.d.ts +12 -12
- package/dist/schema/inbox.js +4 -4
- package/dist/schema/inbox.js.map +1 -1
- package/dist/schema/index.d.ts +8 -5
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +8 -5
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/meta.d.ts +1454 -27
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +198 -21
- package/dist/schema/meta.js.map +1 -1
- package/dist/schema/plan.d.ts +285 -0
- package/dist/schema/plan.d.ts.map +1 -0
- package/dist/schema/plan.js +81 -0
- package/dist/schema/plan.js.map +1 -0
- package/dist/schema/spec.d.ts +72 -33
- package/dist/schema/spec.d.ts.map +1 -1
- package/dist/schema/spec.js +22 -9
- package/dist/schema/spec.js.map +1 -1
- package/dist/schema/task.d.ts +172 -161
- package/dist/schema/task.d.ts.map +1 -1
- package/dist/schema/task.js +21 -12
- package/dist/schema/task.js.map +1 -1
- package/dist/schema/triage.d.ts +266 -0
- package/dist/schema/triage.d.ts.map +1 -0
- package/dist/schema/triage.js +134 -0
- package/dist/schema/triage.js.map +1 -0
- package/dist/sessions/index.d.ts +2 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +3 -3
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/store.d.ts +241 -1
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +810 -31
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +10 -10
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +10 -9
- package/dist/sessions/types.js.map +1 -1
- package/dist/strings/errors.d.ts +55 -0
- package/dist/strings/errors.d.ts.map +1 -1
- package/dist/strings/errors.js +138 -106
- package/dist/strings/errors.js.map +1 -1
- package/dist/strings/guidance.d.ts.map +1 -1
- package/dist/strings/guidance.js +16 -16
- package/dist/strings/guidance.js.map +1 -1
- package/dist/strings/index.d.ts +4 -4
- package/dist/strings/index.d.ts.map +1 -1
- package/dist/strings/index.js +4 -4
- package/dist/strings/index.js.map +1 -1
- package/dist/strings/labels.d.ts +4 -0
- package/dist/strings/labels.d.ts.map +1 -1
- package/dist/strings/labels.js +45 -41
- package/dist/strings/labels.js.map +1 -1
- package/dist/strings/validation.d.ts.map +1 -1
- package/dist/strings/validation.js +71 -71
- package/dist/strings/validation.js.map +1 -1
- package/dist/triage/actions.d.ts +27 -0
- package/dist/triage/actions.d.ts.map +1 -0
- package/dist/triage/actions.js +95 -0
- package/dist/triage/actions.js.map +1 -0
- package/dist/triage/constants.d.ts +6 -0
- package/dist/triage/constants.d.ts.map +1 -0
- package/dist/triage/constants.js +7 -0
- package/dist/triage/constants.js.map +1 -0
- package/dist/triage/index.d.ts +3 -0
- package/dist/triage/index.d.ts.map +1 -0
- package/dist/triage/index.js +3 -0
- package/dist/triage/index.js.map +1 -0
- package/dist/utils/commit.d.ts +1 -1
- package/dist/utils/commit.d.ts.map +1 -1
- package/dist/utils/commit.js +28 -26
- package/dist/utils/commit.js.map +1 -1
- package/dist/utils/git.d.ts +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +40 -38
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/grep.js +11 -11
- package/dist/utils/grep.js.map +1 -1
- package/dist/utils/index.d.ts +7 -7
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +10 -10
- package/dist/utils/time.js.map +1 -1
- package/package.json +28 -5
- package/plugin/.claude-plugin/marketplace.json +17 -0
- package/plugin/.claude-plugin/plugin.json +5 -0
- package/plugin/plugins/kspec/skills/create-workflow/SKILL.md +235 -0
- package/plugin/plugins/kspec/skills/help/SKILL.md +42 -0
- package/plugin/plugins/kspec/skills/observations/SKILL.md +143 -0
- package/plugin/plugins/kspec/skills/plan/SKILL.md +343 -0
- package/plugin/plugins/kspec/skills/reflect/SKILL.md +161 -0
- package/plugin/plugins/kspec/skills/review/SKILL.md +193 -0
- package/plugin/plugins/kspec/skills/task-work/SKILL.md +303 -0
- package/plugin/plugins/kspec/skills/triage/SKILL.md +206 -0
- package/plugin/plugins/kspec/skills/triage/docs/automation.md +120 -0
- package/plugin/plugins/kspec/skills/triage/docs/inbox.md +144 -0
- package/plugin/plugins/kspec/skills/triage/docs/observations.md +85 -0
- package/plugin/plugins/kspec/skills/triage-automation/SKILL.md +140 -0
- package/plugin/plugins/kspec/skills/triage-inbox/SKILL.md +232 -0
- package/plugin/plugins/kspec/skills/writing-specs/SKILL.md +340 -0
- package/templates/agents-sections/01-quick-start.md +22 -0
- package/templates/agents-sections/02-shadow-branch.md +34 -0
- package/templates/agents-sections/03-task-lifecycle.md +48 -0
- package/templates/agents-sections/04-pr-workflow.md +17 -0
- package/templates/agents-sections/05-commit-convention.md +27 -0
- package/templates/agents-sections/06-ralph-loop.md +45 -0
- package/templates/hooks/pre-commit +34 -0
- package/templates/skills/create-workflow/SKILL.md +228 -0
- package/templates/skills/help/SKILL.md +37 -0
- package/templates/skills/manifest.yaml +60 -0
- package/templates/skills/observations/SKILL.md +137 -0
- package/templates/skills/plan/SKILL.md +336 -0
- package/templates/skills/reflect/SKILL.md +155 -0
- package/templates/skills/review/SKILL.md +186 -0
- package/templates/skills/task-work/SKILL.md +296 -0
- package/templates/skills/triage/SKILL.md +199 -0
- package/templates/skills/triage/docs/automation.md +120 -0
- package/templates/skills/triage/docs/inbox.md +144 -0
- package/templates/skills/triage/docs/observations.md +85 -0
- package/templates/skills/triage-automation/SKILL.md +134 -0
- package/templates/skills/triage-inbox/SKILL.md +225 -0
- package/templates/skills/writing-specs/SKILL.md +333 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Create Workflow
|
|
2
|
+
|
|
3
|
+
Formalize repeatable patterns into trackable kspec workflows. A meta-workflow for building new workflows with consistent structure.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Formalizing a repeated process into a trackable workflow
|
|
8
|
+
- Converting step-by-step documentation into executable steps
|
|
9
|
+
- Adding quality gates that are easy to skip without structure
|
|
10
|
+
|
|
11
|
+
**Not for:** Running existing workflows (use `kspec workflow start @id`), one-off processes, or tasks that don't repeat.
|
|
12
|
+
|
|
13
|
+
## Identifying Good Candidates
|
|
14
|
+
|
|
15
|
+
Look for processes that are:
|
|
16
|
+
|
|
17
|
+
| Signal | Example |
|
|
18
|
+
|--------|---------|
|
|
19
|
+
| Step-by-step instructions in docs | "To release: bump version, tag, push, create release" |
|
|
20
|
+
| Checklists that get skipped | "Before merge: check CI, resolve threads, verify AC" |
|
|
21
|
+
| Repeated command sequences | "Start daemon, run tests, check output, stop daemon" |
|
|
22
|
+
| Quality gates with multiple criteria | "Review: AC coverage, test quality, code style, regressions" |
|
|
23
|
+
|
|
24
|
+
Good sources: AGENTS.md, existing skills, task notes, session reflections.
|
|
25
|
+
|
|
26
|
+
## Workflow Structure
|
|
27
|
+
|
|
28
|
+
Every workflow has:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
id: kebab-case-name
|
|
32
|
+
description: What this workflow does
|
|
33
|
+
trigger: when-it-starts
|
|
34
|
+
mode: interactive # or loop
|
|
35
|
+
steps:
|
|
36
|
+
- id: step-1
|
|
37
|
+
type: action # action, check, or decision
|
|
38
|
+
content: What to do in this step
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Triggers
|
|
42
|
+
|
|
43
|
+
| Trigger | When |
|
|
44
|
+
|---------|------|
|
|
45
|
+
| `manual` | Invoked explicitly |
|
|
46
|
+
| `session-start` | Beginning of work session |
|
|
47
|
+
| `session-end` | End of work session |
|
|
48
|
+
| `task-complete` | After completing a task |
|
|
49
|
+
| `behavior-change` | Before implementing changes |
|
|
50
|
+
| `pre-release` | Before creating a release |
|
|
51
|
+
| `pr-merge` | Before merging a PR |
|
|
52
|
+
|
|
53
|
+
### Step Types
|
|
54
|
+
|
|
55
|
+
| Type | Purpose | Example |
|
|
56
|
+
|------|---------|---------|
|
|
57
|
+
| `action` | Do something | "Run tests and verify all pass" |
|
|
58
|
+
| `check` | Verify a condition | "All CI checks passing?" |
|
|
59
|
+
| `decision` | Choose a path | "Import or manual path?" |
|
|
60
|
+
|
|
61
|
+
### Modes
|
|
62
|
+
|
|
63
|
+
- **interactive** — Pauses for user input at each step
|
|
64
|
+
- **loop** — Auto-resolves decisions, no user prompts (for automated agents)
|
|
65
|
+
|
|
66
|
+
Loop mode workflows typically have a `based_on` field referencing the interactive version.
|
|
67
|
+
|
|
68
|
+
## Creating a Workflow
|
|
69
|
+
|
|
70
|
+
### Step 1: Design the Steps
|
|
71
|
+
|
|
72
|
+
Before creating, outline your steps on paper:
|
|
73
|
+
|
|
74
|
+
1. What's the trigger?
|
|
75
|
+
2. What steps are needed?
|
|
76
|
+
3. Which are actions vs checks vs decisions?
|
|
77
|
+
4. What inputs does each step need?
|
|
78
|
+
5. What's the exit criteria?
|
|
79
|
+
|
|
80
|
+
### Step 2: Create the Workflow
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
kspec meta add workflow \
|
|
84
|
+
--id my-workflow \
|
|
85
|
+
--trigger manual \
|
|
86
|
+
--description "Description of what this workflow does" \
|
|
87
|
+
--tag category \
|
|
88
|
+
--steps '[
|
|
89
|
+
{"id":"step-1","type":"action","content":"First action to take"},
|
|
90
|
+
{"id":"step-2","type":"check","content":"Verify the condition"},
|
|
91
|
+
{"id":"step-3","type":"decision","content":"Choose path A or B"}
|
|
92
|
+
]'
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Step 3: Test the Workflow
|
|
96
|
+
|
|
97
|
+
Run through it end-to-end:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
kspec workflow start @my-workflow
|
|
101
|
+
kspec workflow next --notes "Testing step 1"
|
|
102
|
+
kspec workflow next --input decision="path-a" --notes "Chose A because..."
|
|
103
|
+
# Continue through all steps
|
|
104
|
+
kspec workflow show # Verify inputs and notes captured
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Step 4: Consider a Matching Skill
|
|
108
|
+
|
|
109
|
+
A workflow may benefit from a matching skill when:
|
|
110
|
+
|
|
111
|
+
| Create a skill when | Skip the skill when |
|
|
112
|
+
|---------------------|---------------------|
|
|
113
|
+
| Steps need detailed context | Workflow is self-contained |
|
|
114
|
+
| Multiple sub-documents help | Context exists elsewhere |
|
|
115
|
+
| Users need a `/command` entrypoint | Workflow is internal/automated |
|
|
116
|
+
| Complex decision logic | Simple sequential steps |
|
|
117
|
+
|
|
118
|
+
If creating a skill, write it to `templates/skills/<name>/SKILL.md` and add a manifest entry.
|
|
119
|
+
|
|
120
|
+
### Step 5: Commit
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Workflow definition auto-committed to shadow branch by kspec
|
|
124
|
+
# Skill files (if created) need manual commit to main branch
|
|
125
|
+
git add templates/skills/<name>/SKILL.md
|
|
126
|
+
git commit -m "feat: add <name> skill for workflow integration"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Step Design Guidelines
|
|
130
|
+
|
|
131
|
+
### Action Steps
|
|
132
|
+
|
|
133
|
+
Clear, specific instructions:
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
- id: run-tests
|
|
137
|
+
type: action
|
|
138
|
+
content: |
|
|
139
|
+
Run the full test suite. Fix any failures before proceeding.
|
|
140
|
+
Verify both unit and integration tests pass.
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Check Steps
|
|
144
|
+
|
|
145
|
+
Binary yes/no verification:
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
- id: ci-passing
|
|
149
|
+
type: check
|
|
150
|
+
content: |
|
|
151
|
+
Verify all CI checks are passing on the current HEAD.
|
|
152
|
+
If not, wait for CI or fix failures.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Decision Steps
|
|
156
|
+
|
|
157
|
+
Clear options with guidance:
|
|
158
|
+
|
|
159
|
+
```yaml
|
|
160
|
+
- id: choose-path
|
|
161
|
+
type: decision
|
|
162
|
+
content: |
|
|
163
|
+
Choose execution path:
|
|
164
|
+
- Import: 3+ specs, structured document, batch creation
|
|
165
|
+
- Manual: 1-2 specs, incremental, quick additions
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Tips
|
|
169
|
+
|
|
170
|
+
- Keep steps atomic — one action per step
|
|
171
|
+
- Include the "why" when it's not obvious
|
|
172
|
+
- Decision steps should list all options
|
|
173
|
+
- Check steps should describe what to do on failure
|
|
174
|
+
- Use `content` for detailed multi-line instructions
|
|
175
|
+
|
|
176
|
+
## Loop Mode Variants
|
|
177
|
+
|
|
178
|
+
For automated agents, create a loop variant:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
kspec meta add workflow \
|
|
182
|
+
--id my-workflow-loop \
|
|
183
|
+
--trigger manual \
|
|
184
|
+
--mode loop \
|
|
185
|
+
--based-on @my-workflow \
|
|
186
|
+
--description "Automated variant of my-workflow" \
|
|
187
|
+
--steps '[...]'
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Loop variants typically:
|
|
191
|
+
- Auto-resolve decisions (pick the most common path)
|
|
192
|
+
- Skip user confirmation steps
|
|
193
|
+
- Add higher confidence thresholds
|
|
194
|
+
- Include automated exit conditions
|
|
195
|
+
|
|
196
|
+
## Workflow Lifecycle
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# Create
|
|
200
|
+
kspec meta add workflow --id ... --steps '[...]'
|
|
201
|
+
|
|
202
|
+
# Run
|
|
203
|
+
kspec workflow start @id
|
|
204
|
+
kspec workflow next --notes "..."
|
|
205
|
+
kspec workflow next --input key=value
|
|
206
|
+
|
|
207
|
+
# Manage
|
|
208
|
+
kspec workflow show # Check progress
|
|
209
|
+
kspec workflow pause # Pause for later
|
|
210
|
+
kspec workflow resume # Resume paused run
|
|
211
|
+
|
|
212
|
+
# Update (edit the meta YAML)
|
|
213
|
+
kspec meta set workflow @id --steps '[...]'
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Regenerate Agent Instructions
|
|
217
|
+
|
|
218
|
+
After creating a workflow, regenerate agent instructions so the workflow appears in the available workflows list:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
kspec agents generate
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Integration
|
|
225
|
+
|
|
226
|
+
- **`/kspec:reflect`** — Session reflections surface patterns worth formalizing
|
|
227
|
+
- **`/kspec:observations`** — Friction observations may reveal missing workflows
|
|
228
|
+
- **`kspec agents generate`** — Regenerate after creating workflows
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# kspec Help
|
|
2
|
+
|
|
3
|
+
Get help with kspec commands and workflows.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
Use this skill when:
|
|
8
|
+
- You need to understand kspec commands
|
|
9
|
+
- You want to learn about task and spec workflows
|
|
10
|
+
- You need help with CLI syntax
|
|
11
|
+
|
|
12
|
+
## Quick Reference
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Core commands
|
|
16
|
+
kspec help # Show all commands
|
|
17
|
+
kspec help <command> # Show command help
|
|
18
|
+
kspec task list # List tasks
|
|
19
|
+
kspec tasks ready # Show ready tasks
|
|
20
|
+
kspec item list # List spec items
|
|
21
|
+
|
|
22
|
+
# Task lifecycle
|
|
23
|
+
kspec task start @ref # Start working
|
|
24
|
+
kspec task note @ref "..." # Add note
|
|
25
|
+
kspec task submit @ref # Submit for review
|
|
26
|
+
kspec task complete @ref # Mark complete
|
|
27
|
+
|
|
28
|
+
# Spec management
|
|
29
|
+
kspec item add --title "..." # Create spec item
|
|
30
|
+
kspec item ac add @ref --given "..." --when "..." --then "..."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Key Concepts
|
|
34
|
+
|
|
35
|
+
- **Spec items**: Define WHAT to build (requirements, features)
|
|
36
|
+
- **Tasks**: Track the WORK of building
|
|
37
|
+
- **Shadow branch**: Separate branch for spec/task state
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Core Skills Manifest
|
|
2
|
+
# This file defines the metadata for core skills shipped with kspec.
|
|
3
|
+
# The skill content is in ./<skill-id>/SKILL.md
|
|
4
|
+
|
|
5
|
+
skills:
|
|
6
|
+
- id: help
|
|
7
|
+
name: Kspec Help
|
|
8
|
+
description: Get help with kspec commands and workflows
|
|
9
|
+
platforms:
|
|
10
|
+
- claude-code
|
|
11
|
+
- id: observations
|
|
12
|
+
name: Observations
|
|
13
|
+
description: Capture and act on systemic patterns — friction, successes, questions, and ideas. The feedback loop that drives process improvement.
|
|
14
|
+
platforms:
|
|
15
|
+
- claude-code
|
|
16
|
+
- id: reflect
|
|
17
|
+
name: Session Reflection
|
|
18
|
+
description: Structured reflection at the end of work sessions. Identifies learnings, friction points, and improvements for system evolution.
|
|
19
|
+
platforms:
|
|
20
|
+
- claude-code
|
|
21
|
+
- id: triage
|
|
22
|
+
name: Triage
|
|
23
|
+
description: Triage inbox items systematically. Records decisions with audit trail, then executes actions. Supports inbox, observations, and automation eligibility triage.
|
|
24
|
+
platforms:
|
|
25
|
+
- claude-code
|
|
26
|
+
- id: triage-inbox
|
|
27
|
+
name: Inbox Triage
|
|
28
|
+
description: Process inbox items using the record-act pattern. Categorize, promote to spec/task, merge duplicates, defer, or delete stale items with full audit trail.
|
|
29
|
+
platforms:
|
|
30
|
+
- claude-code
|
|
31
|
+
- id: triage-automation
|
|
32
|
+
name: Automation Triage
|
|
33
|
+
description: Assess and prepare tasks for automation eligibility. Verify spec coverage, acceptance criteria, and task readiness for automated agents.
|
|
34
|
+
platforms:
|
|
35
|
+
- claude-code
|
|
36
|
+
- id: writing-specs
|
|
37
|
+
name: Writing Specs
|
|
38
|
+
description: Create and maintain specification items — modules, features, requirements, acceptance criteria, and traits. The source of truth for what to build.
|
|
39
|
+
platforms:
|
|
40
|
+
- claude-code
|
|
41
|
+
- id: plan
|
|
42
|
+
name: Plan to Spec
|
|
43
|
+
description: Translate approved plans into specs and tasks. Import structured documents or create incrementally. Plans persist as durable artifacts with audit trail.
|
|
44
|
+
platforms:
|
|
45
|
+
- claude-code
|
|
46
|
+
- id: task-work
|
|
47
|
+
name: Task Work
|
|
48
|
+
description: Structured task lifecycle — start, work, note, submit, complete. Fix cycle handling, scope management, loop mode for automation, and quality gates.
|
|
49
|
+
platforms:
|
|
50
|
+
- claude-code
|
|
51
|
+
- id: create-workflow
|
|
52
|
+
name: Create Workflow
|
|
53
|
+
description: Formalize repeatable patterns into trackable kspec workflows. Design steps, choose triggers, create loop variants, and integrate with skills.
|
|
54
|
+
platforms:
|
|
55
|
+
- claude-code
|
|
56
|
+
- id: review
|
|
57
|
+
name: Review
|
|
58
|
+
description: Kspec-specific review gates — spec alignment, own AC coverage, trait AC coverage, and validation integration. Building block for project-specific review workflows.
|
|
59
|
+
platforms:
|
|
60
|
+
- claude-code
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Observations
|
|
2
|
+
|
|
3
|
+
Capture and act on systemic patterns — friction, successes, questions, and ideas. Observations are the feedback loop that drives process improvement.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- You hit friction (something harder than it should be)
|
|
8
|
+
- You notice a success worth replicating
|
|
9
|
+
- A systemic question arises (not session-specific)
|
|
10
|
+
- An improvement idea surfaces during work
|
|
11
|
+
|
|
12
|
+
**Not for:** Session-local questions (use `kspec meta question`), future work items (use `kspec inbox add`), or task-specific notes (use `kspec task note`).
|
|
13
|
+
|
|
14
|
+
## Observation Types
|
|
15
|
+
|
|
16
|
+
| Type | When to use | Example |
|
|
17
|
+
|------|-------------|---------|
|
|
18
|
+
| `friction` | Something is harder than it should be | "Bulk updates require too many commands" |
|
|
19
|
+
| `success` | A pattern that worked well | "Dry-run before derive prevented duplicate tasks" |
|
|
20
|
+
| `question` | A systemic question about process | "When should agents use inbox vs tasks?" |
|
|
21
|
+
| `idea` | An improvement opportunity | "CLI could suggest next steps after task completion" |
|
|
22
|
+
|
|
23
|
+
## Capturing Observations
|
|
24
|
+
|
|
25
|
+
Capture in the moment — don't wait until later. The value is in the raw context.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Friction: something was harder than it should be
|
|
29
|
+
kspec meta observe friction "Had to run 5 commands to update one spec field"
|
|
30
|
+
|
|
31
|
+
# Success: a pattern worth remembering
|
|
32
|
+
kspec meta observe success "Using --dry-run before derive prevented duplicate tasks"
|
|
33
|
+
|
|
34
|
+
# Question: systemic, not session-local
|
|
35
|
+
kspec meta observe question "When should agents enter plan mode vs just implement?"
|
|
36
|
+
|
|
37
|
+
# Idea: something that could improve the system
|
|
38
|
+
kspec meta observe idea "CLI could suggest next steps after task completion"
|
|
39
|
+
|
|
40
|
+
# Link to a workflow for context
|
|
41
|
+
kspec meta observe friction "Plan import dropped acceptance criteria" --workflow @spec-plan-import
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Reviewing Observations
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# All unresolved observations (default)
|
|
48
|
+
kspec meta observations
|
|
49
|
+
|
|
50
|
+
# Only those awaiting resolution
|
|
51
|
+
kspec meta observations --pending-resolution
|
|
52
|
+
|
|
53
|
+
# Filter by type
|
|
54
|
+
kspec meta observations --type friction
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Acting on Observations
|
|
58
|
+
|
|
59
|
+
### Promote to Task
|
|
60
|
+
|
|
61
|
+
When an observation reveals clear, actionable work:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
kspec meta promote @ref --title "Add bulk AC command" --priority 2
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Resolve
|
|
68
|
+
|
|
69
|
+
When addressed, documented, or no longer relevant:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Single observation with resolution note
|
|
73
|
+
kspec meta resolve @ref "Fixed in PR #123"
|
|
74
|
+
|
|
75
|
+
# Batch resolve related observations
|
|
76
|
+
kspec meta resolve --refs @ref1 @ref2 @ref3 --resolution "All addressed by new workflow"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Convert from Inbox
|
|
80
|
+
|
|
81
|
+
When an inbox item is really a pattern observation, not future work:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
kspec meta observe --from-inbox @inbox-ref
|
|
85
|
+
kspec meta observe --from-inbox @inbox-ref --type friction
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Decision Flow
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
When you notice something during work:
|
|
92
|
+
├── Is it future work?
|
|
93
|
+
│ └── Yes → kspec inbox add "..."
|
|
94
|
+
├── Is it about THIS task only?
|
|
95
|
+
│ └── Yes → kspec task note @task "..."
|
|
96
|
+
└── Is it a systemic pattern?
|
|
97
|
+
└── Yes → kspec meta observe <type> "..."
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
For each pending observation:
|
|
102
|
+
├── Still relevant?
|
|
103
|
+
│ ├── No → resolve with note
|
|
104
|
+
│ └── Yes → Needs action?
|
|
105
|
+
│ ├── No (just learning) → document and resolve
|
|
106
|
+
│ └── Yes → Scope clear?
|
|
107
|
+
│ ├── Yes → promote to task
|
|
108
|
+
│ └── No → add to inbox for later triage
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Where Observations Fit
|
|
112
|
+
|
|
113
|
+
| What you have | Where | Why |
|
|
114
|
+
|---------------|-------|-----|
|
|
115
|
+
| Vague idea for future | `inbox add` | Low-friction capture, triage later |
|
|
116
|
+
| Clear actionable work | `task add` | Ready to implement |
|
|
117
|
+
| Something was hard | `meta observe friction` | Informs process improvement |
|
|
118
|
+
| Something worked well | `meta observe success` | Worth replicating |
|
|
119
|
+
| Session-local question | `meta question add` | Track during current session |
|
|
120
|
+
| Systemic process question | `meta observe question` | Broader than one session |
|
|
121
|
+
|
|
122
|
+
## Batch Capture
|
|
123
|
+
|
|
124
|
+
When capturing multiple observations at once (e.g., during reflection), use `kspec batch`:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
kspec batch --commands '[
|
|
128
|
+
{"command":"meta observe","args":{"type":"friction","content":"Bulk updates require too many commands"}},
|
|
129
|
+
{"command":"meta observe","args":{"type":"success","content":"Dry-run before derive prevented duplicates"}}
|
|
130
|
+
]'
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Integration
|
|
134
|
+
|
|
135
|
+
- **`/kspec:triage observations`** — Processes pending observations during triage
|
|
136
|
+
- **`/kspec:reflect`** — Creates observations from session learnings
|
|
137
|
+
- **`kspec session start`** — Shows pending observation count
|