light-plan 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +3181 -2
- package/assets/README.md +111 -0
- package/assets/agents/lpm-developer.md +468 -0
- package/assets/agents/lpm-planner.md +532 -0
- package/assets/harnesses/claude.yml +43 -0
- package/assets/harnesses/copilot.yml +54 -0
- package/assets/harnesses/reasonix.yml +49 -0
- package/assets/hcm/light-plan.yml +45 -0
- package/assets/skills/lpm-board-health.md +243 -0
- package/assets/skills/lpm-board-setup.md +354 -0
- package/assets/skills/lpm-delivery.md +344 -0
- package/assets/skills/lpm-planning.md +411 -0
- package/assets/skills/lpm-templates.md +144 -0
- package/assets/skills/lpm.md +267 -0
- package/dist/cli/agent-view.d.ts +27 -0
- package/dist/cli/agent-view.js +247 -0
- package/dist/cli/agent-view.js.map +1 -0
- package/dist/cli/commands/agent/assets.d.ts +64 -0
- package/dist/cli/commands/agent/assets.js +106 -0
- package/dist/cli/commands/agent/assets.js.map +1 -0
- package/dist/cli/commands/agent/glob.d.ts +25 -0
- package/dist/cli/commands/agent/glob.js +82 -0
- package/dist/cli/commands/agent/glob.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +11 -0
- package/dist/cli/commands/agent/index.js +284 -0
- package/dist/cli/commands/agent/index.js.map +1 -0
- package/dist/cli/commands/agent/install.d.ts +59 -0
- package/dist/cli/commands/agent/install.js +131 -0
- package/dist/cli/commands/agent/install.js.map +1 -0
- package/dist/cli/commands/agent/mapping.d.ts +175 -0
- package/dist/cli/commands/agent/mapping.js +256 -0
- package/dist/cli/commands/agent/mapping.js.map +1 -0
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.js +81 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/comment.d.ts +2 -0
- package/dist/cli/commands/comment.js +104 -0
- package/dist/cli/commands/comment.js.map +1 -0
- package/dist/cli/commands/convert.d.ts +2 -0
- package/dist/cli/commands/convert.js +115 -0
- package/dist/cli/commands/convert.js.map +1 -0
- package/dist/cli/commands/copy.d.ts +2 -0
- package/dist/cli/commands/copy.js +69 -0
- package/dist/cli/commands/copy.js.map +1 -0
- package/dist/cli/commands/export.d.ts +11 -0
- package/dist/cli/commands/export.js +226 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/flag.d.ts +2 -0
- package/dist/cli/commands/flag.js +172 -0
- package/dist/cli/commands/flag.js.map +1 -0
- package/dist/cli/commands/git.d.ts +11 -0
- package/dist/cli/commands/git.js +357 -0
- package/dist/cli/commands/git.js.map +1 -0
- package/dist/cli/commands/hcm/bundle.d.ts +60 -0
- package/dist/cli/commands/hcm/bundle.js +166 -0
- package/dist/cli/commands/hcm/bundle.js.map +1 -0
- package/dist/cli/commands/hcm/index.d.ts +11 -0
- package/dist/cli/commands/hcm/index.js +162 -0
- package/dist/cli/commands/hcm/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.js +81 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/insert.d.ts +2 -0
- package/dist/cli/commands/insert.js +70 -0
- package/dist/cli/commands/insert.js.map +1 -0
- package/dist/cli/commands/instructions.d.ts +7 -0
- package/dist/cli/commands/instructions.js +256 -0
- package/dist/cli/commands/instructions.js.map +1 -0
- package/dist/cli/commands/link.d.ts +2 -0
- package/dist/cli/commands/link.js +121 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/mcp/config.d.ts +71 -0
- package/dist/cli/commands/mcp/config.js +119 -0
- package/dist/cli/commands/mcp/config.js.map +1 -0
- package/dist/cli/commands/mcp/index.d.ts +9 -0
- package/dist/cli/commands/mcp/index.js +92 -0
- package/dist/cli/commands/mcp/index.js.map +1 -0
- package/dist/cli/commands/mcp/serve.d.ts +1 -0
- package/dist/cli/commands/mcp/serve.js +76 -0
- package/dist/cli/commands/mcp/serve.js.map +1 -0
- package/dist/cli/commands/mcp/setup.d.ts +1 -0
- package/dist/cli/commands/mcp/setup.js +83 -0
- package/dist/cli/commands/mcp/setup.js.map +1 -0
- package/dist/cli/commands/me.d.ts +2 -0
- package/dist/cli/commands/me.js +85 -0
- package/dist/cli/commands/me.js.map +1 -0
- package/dist/cli/commands/move.d.ts +2 -0
- package/dist/cli/commands/move.js +81 -0
- package/dist/cli/commands/move.js.map +1 -0
- package/dist/cli/commands/new.d.ts +2 -0
- package/dist/cli/commands/new.js +222 -0
- package/dist/cli/commands/new.js.map +1 -0
- package/dist/cli/commands/open.d.ts +2 -0
- package/dist/cli/commands/open.js +43 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/period.d.ts +10 -0
- package/dist/cli/commands/period.js +165 -0
- package/dist/cli/commands/period.js.map +1 -0
- package/dist/cli/commands/profile.d.ts +2 -0
- package/dist/cli/commands/profile.js +133 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/queue.d.ts +2 -0
- package/dist/cli/commands/queue.js +582 -0
- package/dist/cli/commands/queue.js.map +1 -0
- package/dist/cli/commands/remote.d.ts +10 -0
- package/dist/cli/commands/remote.js +3142 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/commands/rm.d.ts +2 -0
- package/dist/cli/commands/rm.js +63 -0
- package/dist/cli/commands/rm.js.map +1 -0
- package/dist/cli/commands/set.d.ts +2 -0
- package/dist/cli/commands/set.js +139 -0
- package/dist/cli/commands/set.js.map +1 -0
- package/dist/cli/commands/split.d.ts +2 -0
- package/dist/cli/commands/split.js +90 -0
- package/dist/cli/commands/split.js.map +1 -0
- package/dist/cli/commands/task.d.ts +2 -0
- package/dist/cli/commands/task.js +298 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/team.d.ts +2 -0
- package/dist/cli/commands/team.js +114 -0
- package/dist/cli/commands/team.js.map +1 -0
- package/dist/cli/commands/template.d.ts +2 -0
- package/dist/cli/commands/template.js +338 -0
- package/dist/cli/commands/template.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +2 -0
- package/dist/cli/commands/ui.js +98 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/upstream.d.ts +2 -0
- package/dist/cli/commands/upstream.js +218 -0
- package/dist/cli/commands/upstream.js.map +1 -0
- package/dist/cli/context.d.ts +24 -0
- package/dist/cli/context.js +52 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +208 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/live.d.ts +71 -0
- package/dist/cli/live.js +182 -0
- package/dist/cli/live.js.map +1 -0
- package/dist/cli/plan.d.ts +28 -0
- package/dist/cli/plan.js +76 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/prompt.d.ts +60 -0
- package/dist/cli/prompt.js +185 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/ui.d.ts +65 -0
- package/dist/cli/ui.js +79 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/core/board/dependency-rollup.d.ts +54 -0
- package/dist/core/board/dependency-rollup.js +72 -0
- package/dist/core/board/dependency-rollup.js.map +1 -0
- package/dist/core/board/flag-rollup.d.ts +33 -0
- package/dist/core/board/flag-rollup.js +56 -0
- package/dist/core/board/flag-rollup.js.map +1 -0
- package/dist/core/board/index.d.ts +21 -0
- package/dist/core/board/index.js +22 -0
- package/dist/core/board/index.js.map +1 -0
- package/dist/core/board/load/cache.d.ts +52 -0
- package/dist/core/board/load/cache.js +105 -0
- package/dist/core/board/load/cache.js.map +1 -0
- package/dist/core/board/load/fields.d.ts +33 -0
- package/dist/core/board/load/fields.js +154 -0
- package/dist/core/board/load/fields.js.map +1 -0
- package/dist/core/board/load/scan.d.ts +39 -0
- package/dist/core/board/load/scan.js +88 -0
- package/dist/core/board/load/scan.js.map +1 -0
- package/dist/core/board/load/tree.d.ts +10 -0
- package/dist/core/board/load/tree.js +114 -0
- package/dist/core/board/load/tree.js.map +1 -0
- package/dist/core/board/load.d.ts +69 -0
- package/dist/core/board/load.js +204 -0
- package/dist/core/board/load.js.map +1 -0
- package/dist/core/board/query.d.ts +126 -0
- package/dist/core/board/query.js +291 -0
- package/dist/core/board/query.js.map +1 -0
- package/dist/core/board/registry.d.ts +51 -0
- package/dist/core/board/registry.js +98 -0
- package/dist/core/board/registry.js.map +1 -0
- package/dist/core/board/remote-scopes.d.ts +71 -0
- package/dist/core/board/remote-scopes.js +103 -0
- package/dist/core/board/remote-scopes.js.map +1 -0
- package/dist/core/board/rollup.d.ts +32 -0
- package/dist/core/board/rollup.js +67 -0
- package/dist/core/board/rollup.js.map +1 -0
- package/dist/core/board/scope.d.ts +81 -0
- package/dist/core/board/scope.js +134 -0
- package/dist/core/board/scope.js.map +1 -0
- package/dist/core/board/simulate.d.ts +138 -0
- package/dist/core/board/simulate.js +141 -0
- package/dist/core/board/simulate.js.map +1 -0
- package/dist/core/board/tasks/index.d.ts +25 -0
- package/dist/core/board/tasks/index.js +26 -0
- package/dist/core/board/tasks/index.js.map +1 -0
- package/dist/core/board/tasks/ranking.d.ts +155 -0
- package/dist/core/board/tasks/ranking.js +374 -0
- package/dist/core/board/tasks/ranking.js.map +1 -0
- package/dist/core/board/tasks/roster.d.ts +42 -0
- package/dist/core/board/tasks/roster.js +82 -0
- package/dist/core/board/tasks/roster.js.map +1 -0
- package/dist/core/board/tasks.d.ts +1 -0
- package/dist/core/board/tasks.js +2 -0
- package/dist/core/board/tasks.js.map +1 -0
- package/dist/core/config/index.d.ts +9 -0
- package/dist/core/config/index.js +10 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/lookup.d.ts +114 -0
- package/dist/core/config/lookup.js +221 -0
- package/dist/core/config/lookup.js.map +1 -0
- package/dist/core/config/remote-blocks.d.ts +17 -0
- package/dist/core/config/remote-blocks.js +47 -0
- package/dist/core/config/remote-blocks.js.map +1 -0
- package/dist/core/config/schema.d.ts +10 -0
- package/dist/core/config/schema.js +451 -0
- package/dist/core/config/schema.js.map +1 -0
- package/dist/core/errors.d.ts +23 -0
- package/dist/core/errors.js +31 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/gitsync/hosts.d.ts +40 -0
- package/dist/core/gitsync/hosts.js +115 -0
- package/dist/core/gitsync/hosts.js.map +1 -0
- package/dist/core/gitsync/index.d.ts +25 -0
- package/dist/core/gitsync/index.js +25 -0
- package/dist/core/gitsync/index.js.map +1 -0
- package/dist/core/gitsync/integrate.d.ts +72 -0
- package/dist/core/gitsync/integrate.js +115 -0
- package/dist/core/gitsync/integrate.js.map +1 -0
- package/dist/core/gitsync/repo.d.ts +61 -0
- package/dist/core/gitsync/repo.js +213 -0
- package/dist/core/gitsync/repo.js.map +1 -0
- package/dist/core/gitsync/run.d.ts +58 -0
- package/dist/core/gitsync/run.js +102 -0
- package/dist/core/gitsync/run.js.map +1 -0
- package/dist/core/gitsync/status.d.ts +59 -0
- package/dist/core/gitsync/status.js +81 -0
- package/dist/core/gitsync/status.js.map +1 -0
- package/dist/core/gitsync/sync.d.ts +111 -0
- package/dist/core/gitsync/sync.js +275 -0
- package/dist/core/gitsync/sync.js.map +1 -0
- package/dist/core/index.d.ts +31 -0
- package/dist/core/index.js +32 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/instructions/analyze.d.ts +70 -0
- package/dist/core/instructions/analyze.js +275 -0
- package/dist/core/instructions/analyze.js.map +1 -0
- package/dist/core/instructions/builtin.d.ts +21 -0
- package/dist/core/instructions/builtin.js +133 -0
- package/dist/core/instructions/builtin.js.map +1 -0
- package/dist/core/instructions/context.d.ts +155 -0
- package/dist/core/instructions/context.js +209 -0
- package/dist/core/instructions/context.js.map +1 -0
- package/dist/core/instructions/index.d.ts +29 -0
- package/dist/core/instructions/index.js +30 -0
- package/dist/core/instructions/index.js.map +1 -0
- package/dist/core/instructions/instructions.d.ts +90 -0
- package/dist/core/instructions/instructions.js +179 -0
- package/dist/core/instructions/instructions.js.map +1 -0
- package/dist/core/instructions/template.d.ts +108 -0
- package/dist/core/instructions/template.js +252 -0
- package/dist/core/instructions/template.js.map +1 -0
- package/dist/core/model/attributes.d.ts +16 -0
- package/dist/core/model/attributes.js +119 -0
- package/dist/core/model/attributes.js.map +1 -0
- package/dist/core/model/index.d.ts +10 -0
- package/dist/core/model/index.js +11 -0
- package/dist/core/model/index.js.map +1 -0
- package/dist/core/model/links.d.ts +34 -0
- package/dist/core/model/links.js +114 -0
- package/dist/core/model/links.js.map +1 -0
- package/dist/core/model/profile.d.ts +31 -0
- package/dist/core/model/profile.js +8 -0
- package/dist/core/model/profile.js.map +1 -0
- package/dist/core/model/types.d.ts +441 -0
- package/dist/core/model/types.js +167 -0
- package/dist/core/model/types.js.map +1 -0
- package/dist/core/model/zod.d.ts +6 -0
- package/dist/core/model/zod.js +11 -0
- package/dist/core/model/zod.js.map +1 -0
- package/dist/core/operations/board-index.d.ts +45 -0
- package/dist/core/operations/board-index.js +147 -0
- package/dist/core/operations/board-index.js.map +1 -0
- package/dist/core/operations/claim.d.ts +69 -0
- package/dist/core/operations/claim.js +115 -0
- package/dist/core/operations/claim.js.map +1 -0
- package/dist/core/operations/comment.d.ts +30 -0
- package/dist/core/operations/comment.js +46 -0
- package/dist/core/operations/comment.js.map +1 -0
- package/dist/core/operations/create.d.ts +82 -0
- package/dist/core/operations/create.js +306 -0
- package/dist/core/operations/create.js.map +1 -0
- package/dist/core/operations/flag.d.ts +58 -0
- package/dist/core/operations/flag.js +95 -0
- package/dist/core/operations/flag.js.map +1 -0
- package/dist/core/operations/git-sync.d.ts +148 -0
- package/dist/core/operations/git-sync.js +341 -0
- package/dist/core/operations/git-sync.js.map +1 -0
- package/dist/core/operations/index.d.ts +44 -0
- package/dist/core/operations/index.js +45 -0
- package/dist/core/operations/index.js.map +1 -0
- package/dist/core/operations/init.d.ts +25 -0
- package/dist/core/operations/init.js +122 -0
- package/dist/core/operations/init.js.map +1 -0
- package/dist/core/operations/link.d.ts +40 -0
- package/dist/core/operations/link.js +131 -0
- package/dist/core/operations/link.js.map +1 -0
- package/dist/core/operations/move.d.ts +43 -0
- package/dist/core/operations/move.js +103 -0
- package/dist/core/operations/move.js.map +1 -0
- package/dist/core/operations/profile.d.ts +23 -0
- package/dist/core/operations/profile.js +26 -0
- package/dist/core/operations/profile.js.map +1 -0
- package/dist/core/operations/remotes-off.d.ts +12 -0
- package/dist/core/operations/remotes-off.js +67 -0
- package/dist/core/operations/remotes-off.js.map +1 -0
- package/dist/core/operations/remove.d.ts +18 -0
- package/dist/core/operations/remove.js +114 -0
- package/dist/core/operations/remove.js.map +1 -0
- package/dist/core/operations/retype.d.ts +25 -0
- package/dist/core/operations/retype.js +59 -0
- package/dist/core/operations/retype.js.map +1 -0
- package/dist/core/operations/rollup.d.ts +74 -0
- package/dist/core/operations/rollup.js +121 -0
- package/dist/core/operations/rollup.js.map +1 -0
- package/dist/core/operations/shared.d.ts +133 -0
- package/dist/core/operations/shared.js +383 -0
- package/dist/core/operations/shared.js.map +1 -0
- package/dist/core/operations/update.d.ts +43 -0
- package/dist/core/operations/update.js +161 -0
- package/dist/core/operations/update.js.map +1 -0
- package/dist/core/operations/user.d.ts +27 -0
- package/dist/core/operations/user.js +68 -0
- package/dist/core/operations/user.js.map +1 -0
- package/dist/core/profile/current.d.ts +35 -0
- package/dist/core/profile/current.js +31 -0
- package/dist/core/profile/current.js.map +1 -0
- package/dist/core/profile/index.d.ts +14 -0
- package/dist/core/profile/index.js +15 -0
- package/dist/core/profile/index.js.map +1 -0
- package/dist/core/profile/schema.d.ts +9 -0
- package/dist/core/profile/schema.js +100 -0
- package/dist/core/profile/schema.js.map +1 -0
- package/dist/core/storage/activity.d.ts +78 -0
- package/dist/core/storage/activity.js +131 -0
- package/dist/core/storage/activity.js.map +1 -0
- package/dist/core/storage/atomic.d.ts +34 -0
- package/dist/core/storage/atomic.js +117 -0
- package/dist/core/storage/atomic.js.map +1 -0
- package/dist/core/storage/comments.d.ts +39 -0
- package/dist/core/storage/comments.js +88 -0
- package/dist/core/storage/comments.js.map +1 -0
- package/dist/core/storage/document.d.ts +16 -0
- package/dist/core/storage/document.js +98 -0
- package/dist/core/storage/document.js.map +1 -0
- package/dist/core/storage/frontmatter.d.ts +16 -0
- package/dist/core/storage/frontmatter.js +33 -0
- package/dist/core/storage/frontmatter.js.map +1 -0
- package/dist/core/storage/git.d.ts +8 -0
- package/dist/core/storage/git.js +48 -0
- package/dist/core/storage/git.js.map +1 -0
- package/dist/core/storage/index.d.ts +27 -0
- package/dist/core/storage/index.js +28 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/storage/local.d.ts +57 -0
- package/dist/core/storage/local.js +133 -0
- package/dist/core/storage/local.js.map +1 -0
- package/dist/core/storage/lock.d.ts +85 -0
- package/dist/core/storage/lock.js +364 -0
- package/dist/core/storage/lock.js.map +1 -0
- package/dist/core/storage/paths.d.ts +125 -0
- package/dist/core/storage/paths.js +202 -0
- package/dist/core/storage/paths.js.map +1 -0
- package/dist/core/storage/state.d.ts +32 -0
- package/dist/core/storage/state.js +71 -0
- package/dist/core/storage/state.js.map +1 -0
- package/dist/core/storage/templates.d.ts +29 -0
- package/dist/core/storage/templates.js +62 -0
- package/dist/core/storage/templates.js.map +1 -0
- package/dist/core/storage/views.d.ts +18 -0
- package/dist/core/storage/views.js +62 -0
- package/dist/core/storage/views.js.map +1 -0
- package/dist/core/validation/check.d.ts +4 -0
- package/dist/core/validation/check.js +22 -0
- package/dist/core/validation/check.js.map +1 -0
- package/dist/core/validation/checks/collection.d.ts +4 -0
- package/dist/core/validation/checks/collection.js +152 -0
- package/dist/core/validation/checks/collection.js.map +1 -0
- package/dist/core/validation/checks/counters.d.ts +3 -0
- package/dist/core/validation/checks/counters.js +23 -0
- package/dist/core/validation/checks/counters.js.map +1 -0
- package/dist/core/validation/checks/dependencies.d.ts +3 -0
- package/dist/core/validation/checks/dependencies.js +58 -0
- package/dist/core/validation/checks/dependencies.js.map +1 -0
- package/dist/core/validation/checks/gitignore.d.ts +10 -0
- package/dist/core/validation/checks/gitignore.js +22 -0
- package/dist/core/validation/checks/gitignore.js.map +1 -0
- package/dist/core/validation/checks/index-file.d.ts +8 -0
- package/dist/core/validation/checks/index-file.js +26 -0
- package/dist/core/validation/checks/index-file.js.map +1 -0
- package/dist/core/validation/checks/index.d.ts +20 -0
- package/dist/core/validation/checks/index.js +21 -0
- package/dist/core/validation/checks/index.js.map +1 -0
- package/dist/core/validation/checks/issues.d.ts +3 -0
- package/dist/core/validation/checks/issues.js +152 -0
- package/dist/core/validation/checks/issues.js.map +1 -0
- package/dist/core/validation/checks/periods.d.ts +3 -0
- package/dist/core/validation/checks/periods.js +89 -0
- package/dist/core/validation/checks/periods.js.map +1 -0
- package/dist/core/validation/checks/remotes.d.ts +20 -0
- package/dist/core/validation/checks/remotes.js +42 -0
- package/dist/core/validation/checks/remotes.js.map +1 -0
- package/dist/core/validation/checks/resources.d.ts +3 -0
- package/dist/core/validation/checks/resources.js +77 -0
- package/dist/core/validation/checks/resources.js.map +1 -0
- package/dist/core/validation/checks/rollup.d.ts +27 -0
- package/dist/core/validation/checks/rollup.js +53 -0
- package/dist/core/validation/checks/rollup.js.map +1 -0
- package/dist/core/validation/checks/squads.d.ts +3 -0
- package/dist/core/validation/checks/squads.js +42 -0
- package/dist/core/validation/checks/squads.js.map +1 -0
- package/dist/core/validation/checks/templates.d.ts +14 -0
- package/dist/core/validation/checks/templates.js +119 -0
- package/dist/core/validation/checks/templates.js.map +1 -0
- package/dist/core/validation/fix.d.ts +7 -0
- package/dist/core/validation/fix.js +273 -0
- package/dist/core/validation/fix.js.map +1 -0
- package/dist/core/validation/index.d.ts +7 -0
- package/dist/core/validation/index.js +8 -0
- package/dist/core/validation/index.js.map +1 -0
- package/dist/core/validation/shared.d.ts +47 -0
- package/dist/core/validation/shared.js +66 -0
- package/dist/core/validation/shared.js.map +1 -0
- package/dist/mcp/context.d.ts +70 -0
- package/dist/mcp/context.js +110 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/index.d.ts +49 -0
- package/dist/mcp/index.js +90 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/reply.d.ts +28 -0
- package/dist/mcp/reply.js +34 -0
- package/dist/mcp/reply.js.map +1 -0
- package/dist/mcp/tools/plan/create.d.ts +3 -0
- package/dist/mcp/tools/plan/create.js +128 -0
- package/dist/mcp/tools/plan/create.js.map +1 -0
- package/dist/mcp/tools/plan/delete.d.ts +3 -0
- package/dist/mcp/tools/plan/delete.js +35 -0
- package/dist/mcp/tools/plan/delete.js.map +1 -0
- package/dist/mcp/tools/plan/graph.d.ts +3 -0
- package/dist/mcp/tools/plan/graph.js +53 -0
- package/dist/mcp/tools/plan/graph.js.map +1 -0
- package/dist/mcp/tools/plan/index.d.ts +15 -0
- package/dist/mcp/tools/plan/index.js +16 -0
- package/dist/mcp/tools/plan/index.js.map +1 -0
- package/dist/mcp/tools/plan/link.d.ts +3 -0
- package/dist/mcp/tools/plan/link.js +46 -0
- package/dist/mcp/tools/plan/link.js.map +1 -0
- package/dist/mcp/tools/plan/registrar.d.ts +10 -0
- package/dist/mcp/tools/plan/registrar.js +24 -0
- package/dist/mcp/tools/plan/registrar.js.map +1 -0
- package/dist/mcp/tools/plan/reshape.d.ts +3 -0
- package/dist/mcp/tools/plan/reshape.js +95 -0
- package/dist/mcp/tools/plan/reshape.js.map +1 -0
- package/dist/mcp/tools/plan/timeline.d.ts +3 -0
- package/dist/mcp/tools/plan/timeline.js +68 -0
- package/dist/mcp/tools/plan/timeline.js.map +1 -0
- package/dist/mcp/tools/plan/upstream.d.ts +14 -0
- package/dist/mcp/tools/plan/upstream.js +69 -0
- package/dist/mcp/tools/plan/upstream.js.map +1 -0
- package/dist/mcp/tools/plan.d.ts +1 -0
- package/dist/mcp/tools/plan.js +2 -0
- package/dist/mcp/tools/plan.js.map +1 -0
- package/dist/mcp/tools/read.d.ts +3 -0
- package/dist/mcp/tools/read.js +339 -0
- package/dist/mcp/tools/read.js.map +1 -0
- package/dist/mcp/tools/remote.d.ts +3 -0
- package/dist/mcp/tools/remote.js +254 -0
- package/dist/mcp/tools/remote.js.map +1 -0
- package/dist/mcp/tools/templates.d.ts +12 -0
- package/dist/mcp/tools/templates.js +165 -0
- package/dist/mcp/tools/templates.js.map +1 -0
- package/dist/mcp/tools/work.d.ts +16 -0
- package/dist/mcp/tools/work.js +359 -0
- package/dist/mcp/tools/work.js.map +1 -0
- package/dist/remote/accounts.d.ts +158 -0
- package/dist/remote/accounts.js +207 -0
- package/dist/remote/accounts.js.map +1 -0
- package/dist/remote/adopt.d.ts +139 -0
- package/dist/remote/adopt.js +181 -0
- package/dist/remote/adopt.js.map +1 -0
- package/dist/remote/anchor.d.ts +35 -0
- package/dist/remote/anchor.js +53 -0
- package/dist/remote/anchor.js.map +1 -0
- package/dist/remote/attributes.d.ts +103 -0
- package/dist/remote/attributes.js +245 -0
- package/dist/remote/attributes.js.map +1 -0
- package/dist/remote/audit.d.ts +112 -0
- package/dist/remote/audit.js +215 -0
- package/dist/remote/audit.js.map +1 -0
- package/dist/remote/capabilities.d.ts +267 -0
- package/dist/remote/capabilities.js +225 -0
- package/dist/remote/capabilities.js.map +1 -0
- package/dist/remote/check.d.ts +49 -0
- package/dist/remote/check.js +356 -0
- package/dist/remote/check.js.map +1 -0
- package/dist/remote/comments.d.ts +86 -0
- package/dist/remote/comments.js +87 -0
- package/dist/remote/comments.js.map +1 -0
- package/dist/remote/config-file.d.ts +237 -0
- package/dist/remote/config-file.js +640 -0
- package/dist/remote/config-file.js.map +1 -0
- package/dist/remote/conflicts.d.ts +110 -0
- package/dist/remote/conflicts.js +188 -0
- package/dist/remote/conflicts.js.map +1 -0
- package/dist/remote/connection-catalogue.d.ts +65 -0
- package/dist/remote/connection-catalogue.js +66 -0
- package/dist/remote/connection-catalogue.js.map +1 -0
- package/dist/remote/connection.d.ts +84 -0
- package/dist/remote/connection.js +229 -0
- package/dist/remote/connection.js.map +1 -0
- package/dist/remote/coverage.d.ts +65 -0
- package/dist/remote/coverage.js +244 -0
- package/dist/remote/coverage.js.map +1 -0
- package/dist/remote/credentials.d.ts +95 -0
- package/dist/remote/credentials.js +210 -0
- package/dist/remote/credentials.js.map +1 -0
- package/dist/remote/execute.d.ts +178 -0
- package/dist/remote/execute.js +1245 -0
- package/dist/remote/execute.js.map +1 -0
- package/dist/remote/fingerprint.d.ts +172 -0
- package/dist/remote/fingerprint.js +337 -0
- package/dist/remote/fingerprint.js.map +1 -0
- package/dist/remote/fixtures.d.ts +176 -0
- package/dist/remote/fixtures.js +432 -0
- package/dist/remote/fixtures.js.map +1 -0
- package/dist/remote/guard.d.ts +90 -0
- package/dist/remote/guard.js +83 -0
- package/dist/remote/guard.js.map +1 -0
- package/dist/remote/hierarchy.d.ts +141 -0
- package/dist/remote/hierarchy.js +129 -0
- package/dist/remote/hierarchy.js.map +1 -0
- package/dist/remote/index.d.ts +145 -0
- package/dist/remote/index.js +146 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/inspect.d.ts +103 -0
- package/dist/remote/inspect.js +152 -0
- package/dist/remote/inspect.js.map +1 -0
- package/dist/remote/labels.d.ts +75 -0
- package/dist/remote/labels.js +137 -0
- package/dist/remote/labels.js.map +1 -0
- package/dist/remote/ladder.d.ts +145 -0
- package/dist/remote/ladder.js +387 -0
- package/dist/remote/ladder.js.map +1 -0
- package/dist/remote/ledger.d.ts +97 -0
- package/dist/remote/ledger.js +148 -0
- package/dist/remote/ledger.js.map +1 -0
- package/dist/remote/lifecycle.d.ts +175 -0
- package/dist/remote/lifecycle.js +274 -0
- package/dist/remote/lifecycle.js.map +1 -0
- package/dist/remote/links.d.ts +411 -0
- package/dist/remote/links.js +748 -0
- package/dist/remote/links.js.map +1 -0
- package/dist/remote/managed-block.d.ts +182 -0
- package/dist/remote/managed-block.js +406 -0
- package/dist/remote/managed-block.js.map +1 -0
- package/dist/remote/managed-comment.d.ts +104 -0
- package/dist/remote/managed-comment.js +92 -0
- package/dist/remote/managed-comment.js.map +1 -0
- package/dist/remote/mapping.d.ts +282 -0
- package/dist/remote/mapping.js +336 -0
- package/dist/remote/mapping.js.map +1 -0
- package/dist/remote/merge.d.ts +172 -0
- package/dist/remote/merge.js +221 -0
- package/dist/remote/merge.js.map +1 -0
- package/dist/remote/periods.d.ts +209 -0
- package/dist/remote/periods.js +224 -0
- package/dist/remote/periods.js.map +1 -0
- package/dist/remote/plan.d.ts +671 -0
- package/dist/remote/plan.js +1210 -0
- package/dist/remote/plan.js.map +1 -0
- package/dist/remote/policy.d.ts +67 -0
- package/dist/remote/policy.js +67 -0
- package/dist/remote/policy.js.map +1 -0
- package/dist/remote/preflight.d.ts +112 -0
- package/dist/remote/preflight.js +342 -0
- package/dist/remote/preflight.js.map +1 -0
- package/dist/remote/prerequisites.d.ts +113 -0
- package/dist/remote/prerequisites.js +161 -0
- package/dist/remote/prerequisites.js.map +1 -0
- package/dist/remote/provider.d.ts +802 -0
- package/dist/remote/provider.js +27 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/providers/github/config.d.ts +84 -0
- package/dist/remote/providers/github/config.js +161 -0
- package/dist/remote/providers/github/config.js.map +1 -0
- package/dist/remote/providers/github/connector.d.ts +33 -0
- package/dist/remote/providers/github/connector.js +774 -0
- package/dist/remote/providers/github/connector.js.map +1 -0
- package/dist/remote/providers/github/edges.d.ts +29 -0
- package/dist/remote/providers/github/edges.js +56 -0
- package/dist/remote/providers/github/edges.js.map +1 -0
- package/dist/remote/providers/github/hierarchy.d.ts +21 -0
- package/dist/remote/providers/github/hierarchy.js +46 -0
- package/dist/remote/providers/github/hierarchy.js.map +1 -0
- package/dist/remote/providers/github/index.d.ts +26 -0
- package/dist/remote/providers/github/index.js +69 -0
- package/dist/remote/providers/github/index.js.map +1 -0
- package/dist/remote/providers/github/project-iteration.d.ts +71 -0
- package/dist/remote/providers/github/project-iteration.js +203 -0
- package/dist/remote/providers/github/project-iteration.js.map +1 -0
- package/dist/remote/providers/github/project-provision.d.ts +130 -0
- package/dist/remote/providers/github/project-provision.js +247 -0
- package/dist/remote/providers/github/project-provision.js.map +1 -0
- package/dist/remote/providers/github/project-status.d.ts +115 -0
- package/dist/remote/providers/github/project-status.js +317 -0
- package/dist/remote/providers/github/project-status.js.map +1 -0
- package/dist/remote/providers/github/projects.d.ts +181 -0
- package/dist/remote/providers/github/projects.js +481 -0
- package/dist/remote/providers/github/projects.js.map +1 -0
- package/dist/remote/providers/github/translator.d.ts +103 -0
- package/dist/remote/providers/github/translator.js +400 -0
- package/dist/remote/providers/github/translator.js.map +1 -0
- package/dist/remote/providers/jira/config.d.ts +96 -0
- package/dist/remote/providers/jira/config.js +200 -0
- package/dist/remote/providers/jira/config.js.map +1 -0
- package/dist/remote/providers/jira/connector.d.ts +42 -0
- package/dist/remote/providers/jira/connector.js +1688 -0
- package/dist/remote/providers/jira/connector.js.map +1 -0
- package/dist/remote/providers/jira/fields.d.ts +292 -0
- package/dist/remote/providers/jira/fields.js +463 -0
- package/dist/remote/providers/jira/fields.js.map +1 -0
- package/dist/remote/providers/jira/hierarchy.d.ts +28 -0
- package/dist/remote/providers/jira/hierarchy.js +60 -0
- package/dist/remote/providers/jira/hierarchy.js.map +1 -0
- package/dist/remote/providers/jira/index.d.ts +29 -0
- package/dist/remote/providers/jira/index.js +100 -0
- package/dist/remote/providers/jira/index.js.map +1 -0
- package/dist/remote/providers/jira/links.d.ts +41 -0
- package/dist/remote/providers/jira/links.js +102 -0
- package/dist/remote/providers/jira/links.js.map +1 -0
- package/dist/remote/providers/jira/sprints.d.ts +80 -0
- package/dist/remote/providers/jira/sprints.js +107 -0
- package/dist/remote/providers/jira/sprints.js.map +1 -0
- package/dist/remote/providers/jira/translator.d.ts +61 -0
- package/dist/remote/providers/jira/translator.js +382 -0
- package/dist/remote/providers/jira/translator.js.map +1 -0
- package/dist/remote/providers/jira/types.d.ts +112 -0
- package/dist/remote/providers/jira/types.js +160 -0
- package/dist/remote/providers/jira/types.js.map +1 -0
- package/dist/remote/providers/jira/vocabulary.d.ts +55 -0
- package/dist/remote/providers/jira/vocabulary.js +91 -0
- package/dist/remote/providers/jira/vocabulary.js.map +1 -0
- package/dist/remote/providers/jsonfile/config.d.ts +61 -0
- package/dist/remote/providers/jsonfile/config.js +83 -0
- package/dist/remote/providers/jsonfile/config.js.map +1 -0
- package/dist/remote/providers/jsonfile/connector.d.ts +34 -0
- package/dist/remote/providers/jsonfile/connector.js +251 -0
- package/dist/remote/providers/jsonfile/connector.js.map +1 -0
- package/dist/remote/providers/jsonfile/index.d.ts +38 -0
- package/dist/remote/providers/jsonfile/index.js +90 -0
- package/dist/remote/providers/jsonfile/index.js.map +1 -0
- package/dist/remote/providers/jsonfile/store.d.ts +59 -0
- package/dist/remote/providers/jsonfile/store.js +48 -0
- package/dist/remote/providers/jsonfile/store.js.map +1 -0
- package/dist/remote/providers/jsonfile/translator.d.ts +54 -0
- package/dist/remote/providers/jsonfile/translator.js +199 -0
- package/dist/remote/providers/jsonfile/translator.js.map +1 -0
- package/dist/remote/providers/linear/config.d.ts +83 -0
- package/dist/remote/providers/linear/config.js +140 -0
- package/dist/remote/providers/linear/config.js.map +1 -0
- package/dist/remote/providers/linear/connector.d.ts +36 -0
- package/dist/remote/providers/linear/connector.js +438 -0
- package/dist/remote/providers/linear/connector.js.map +1 -0
- package/dist/remote/providers/linear/estimate.d.ts +63 -0
- package/dist/remote/providers/linear/estimate.js +112 -0
- package/dist/remote/providers/linear/estimate.js.map +1 -0
- package/dist/remote/providers/linear/index.d.ts +31 -0
- package/dist/remote/providers/linear/index.js +75 -0
- package/dist/remote/providers/linear/index.js.map +1 -0
- package/dist/remote/providers/linear/labels.d.ts +51 -0
- package/dist/remote/providers/linear/labels.js +129 -0
- package/dist/remote/providers/linear/labels.js.map +1 -0
- package/dist/remote/providers/linear/states.d.ts +97 -0
- package/dist/remote/providers/linear/states.js +124 -0
- package/dist/remote/providers/linear/states.js.map +1 -0
- package/dist/remote/providers/linear/translator.d.ts +48 -0
- package/dist/remote/providers/linear/translator.js +343 -0
- package/dist/remote/providers/linear/translator.js.map +1 -0
- package/dist/remote/providers/linear/vocabulary.d.ts +27 -0
- package/dist/remote/providers/linear/vocabulary.js +42 -0
- package/dist/remote/providers/linear/vocabulary.js.map +1 -0
- package/dist/remote/provision.d.ts +45 -0
- package/dist/remote/provision.js +81 -0
- package/dist/remote/provision.js.map +1 -0
- package/dist/remote/pull.d.ts +52 -0
- package/dist/remote/pull.js +116 -0
- package/dist/remote/pull.js.map +1 -0
- package/dist/remote/readiness.d.ts +67 -0
- package/dist/remote/readiness.js +336 -0
- package/dist/remote/readiness.js.map +1 -0
- package/dist/remote/rebase.d.ts +157 -0
- package/dist/remote/rebase.js +255 -0
- package/dist/remote/rebase.js.map +1 -0
- package/dist/remote/reconcile.d.ts +115 -0
- package/dist/remote/reconcile.js +140 -0
- package/dist/remote/reconcile.js.map +1 -0
- package/dist/remote/redact.d.ts +70 -0
- package/dist/remote/redact.js +132 -0
- package/dist/remote/redact.js.map +1 -0
- package/dist/remote/registry.d.ts +32 -0
- package/dist/remote/registry.js +54 -0
- package/dist/remote/registry.js.map +1 -0
- package/dist/remote/remotes.d.ts +94 -0
- package/dist/remote/remotes.js +182 -0
- package/dist/remote/remotes.js.map +1 -0
- package/dist/remote/render.d.ts +147 -0
- package/dist/remote/render.js +683 -0
- package/dist/remote/render.js.map +1 -0
- package/dist/remote/report.d.ts +63 -0
- package/dist/remote/report.js +345 -0
- package/dist/remote/report.js.map +1 -0
- package/dist/remote/resolutions.d.ts +115 -0
- package/dist/remote/resolutions.js +217 -0
- package/dist/remote/resolutions.js.map +1 -0
- package/dist/remote/scaffold.d.ts +134 -0
- package/dist/remote/scaffold.js +370 -0
- package/dist/remote/scaffold.js.map +1 -0
- package/dist/remote/scope.d.ts +57 -0
- package/dist/remote/scope.js +91 -0
- package/dist/remote/scope.js.map +1 -0
- package/dist/remote/selection.d.ts +38 -0
- package/dist/remote/selection.js +50 -0
- package/dist/remote/selection.js.map +1 -0
- package/dist/remote/shape.d.ts +141 -0
- package/dist/remote/shape.js +220 -0
- package/dist/remote/shape.js.map +1 -0
- package/dist/remote/status.d.ts +104 -0
- package/dist/remote/status.js +238 -0
- package/dist/remote/status.js.map +1 -0
- package/dist/remote/sync.d.ts +182 -0
- package/dist/remote/sync.js +523 -0
- package/dist/remote/sync.js.map +1 -0
- package/dist/remote/transport/budget.d.ts +48 -0
- package/dist/remote/transport/budget.js +68 -0
- package/dist/remote/transport/budget.js.map +1 -0
- package/dist/remote/transport/connector.d.ts +115 -0
- package/dist/remote/transport/connector.js +21 -0
- package/dist/remote/transport/connector.js.map +1 -0
- package/dist/remote/transport/error.d.ts +88 -0
- package/dist/remote/transport/error.js +196 -0
- package/dist/remote/transport/error.js.map +1 -0
- package/dist/remote/transport/gh.d.ts +20 -0
- package/dist/remote/transport/gh.js +41 -0
- package/dist/remote/transport/gh.js.map +1 -0
- package/dist/remote/transport/graphql.d.ts +25 -0
- package/dist/remote/transport/graphql.js +81 -0
- package/dist/remote/transport/graphql.js.map +1 -0
- package/dist/remote/transport/http.d.ts +47 -0
- package/dist/remote/transport/http.js +195 -0
- package/dist/remote/transport/http.js.map +1 -0
- package/dist/remote/transport/index.d.ts +18 -0
- package/dist/remote/transport/index.js +19 -0
- package/dist/remote/transport/index.js.map +1 -0
- package/dist/remote/transport/process.d.ts +39 -0
- package/dist/remote/transport/process.js +121 -0
- package/dist/remote/transport/process.js.map +1 -0
- package/dist/remote/transport/rest.d.ts +22 -0
- package/dist/remote/transport/rest.js +57 -0
- package/dist/remote/transport/rest.js.map +1 -0
- package/dist/remote/transport/retry.d.ts +91 -0
- package/dist/remote/transport/retry.js +138 -0
- package/dist/remote/transport/retry.js.map +1 -0
- package/dist/remote/transport-error.d.ts +19 -0
- package/dist/remote/transport-error.js +22 -0
- package/dist/remote/transport-error.js.map +1 -0
- package/dist/remote/vocabulary.d.ts +126 -0
- package/dist/remote/vocabulary.js +57 -0
- package/dist/remote/vocabulary.js.map +1 -0
- package/dist/runner/config.d.ts +7 -0
- package/dist/runner/config.js +61 -0
- package/dist/runner/config.js.map +1 -0
- package/dist/runner/git.d.ts +19 -0
- package/dist/runner/git.js +26 -0
- package/dist/runner/git.js.map +1 -0
- package/dist/runner/index.d.ts +20 -0
- package/dist/runner/index.js +21 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/loop.d.ts +46 -0
- package/dist/runner/loop.js +243 -0
- package/dist/runner/loop.js.map +1 -0
- package/dist/runner/pi.d.ts +39 -0
- package/dist/runner/pi.js +276 -0
- package/dist/runner/pi.js.map +1 -0
- package/dist/runner/shell.d.ts +44 -0
- package/dist/runner/shell.js +174 -0
- package/dist/runner/shell.js.map +1 -0
- package/dist/runner/stats.d.ts +19 -0
- package/dist/runner/stats.js +58 -0
- package/dist/runner/stats.js.map +1 -0
- package/dist/runner/types.d.ts +218 -0
- package/dist/runner/types.js +37 -0
- package/dist/runner/types.js.map +1 -0
- package/dist/server/git.d.ts +8 -0
- package/dist/server/git.js +50 -0
- package/dist/server/git.js.map +1 -0
- package/dist/server/http/respond.d.ts +13 -0
- package/dist/server/http/respond.js +59 -0
- package/dist/server/http/respond.js.map +1 -0
- package/dist/server/http/router.d.ts +27 -0
- package/dist/server/http/router.js +48 -0
- package/dist/server/http/router.js.map +1 -0
- package/dist/server/http/static.d.ts +14 -0
- package/dist/server/http/static.js +55 -0
- package/dist/server/http/static.js.map +1 -0
- package/dist/server/index.d.ts +58 -0
- package/dist/server/index.js +124 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/board.d.ts +8 -0
- package/dist/server/routes/board.js +19 -0
- package/dist/server/routes/board.js.map +1 -0
- package/dist/server/routes/comments.d.ts +13 -0
- package/dist/server/routes/comments.js +36 -0
- package/dist/server/routes/comments.js.map +1 -0
- package/dist/server/routes/flags.d.ts +16 -0
- package/dist/server/routes/flags.js +37 -0
- package/dist/server/routes/flags.js.map +1 -0
- package/dist/server/routes/git.d.ts +13 -0
- package/dist/server/routes/git.js +84 -0
- package/dist/server/routes/git.js.map +1 -0
- package/dist/server/routes/remotes.d.ts +36 -0
- package/dist/server/routes/remotes.js +749 -0
- package/dist/server/routes/remotes.js.map +1 -0
- package/dist/server/routes/views.d.ts +10 -0
- package/dist/server/routes/views.js +63 -0
- package/dist/server/routes/views.js.map +1 -0
- package/dist/server/views/schema.d.ts +2 -0
- package/dist/server/views/schema.js +121 -0
- package/dist/server/views/schema.js.map +1 -0
- package/dist/server/views/store.d.ts +17 -0
- package/dist/server/views/store.js +67 -0
- package/dist/server/views/store.js.map +1 -0
- package/dist/shared/adf.d.ts +83 -0
- package/dist/shared/adf.js +795 -0
- package/dist/shared/adf.js.map +1 -0
- package/dist/shared/blocking.d.ts +130 -0
- package/dist/shared/blocking.js +179 -0
- package/dist/shared/blocking.js.map +1 -0
- package/dist/shared/changes.d.ts +100 -0
- package/dist/shared/changes.js +112 -0
- package/dist/shared/changes.js.map +1 -0
- package/dist/shared/cohesion.d.ts +75 -0
- package/dist/shared/cohesion.js +132 -0
- package/dist/shared/cohesion.js.map +1 -0
- package/dist/shared/dependency-rollup.d.ts +91 -0
- package/dist/shared/dependency-rollup.js +132 -0
- package/dist/shared/dependency-rollup.js.map +1 -0
- package/dist/shared/errors.d.ts +23 -0
- package/dist/shared/errors.js +24 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/flag-rollup.d.ts +88 -0
- package/dist/shared/flag-rollup.js +119 -0
- package/dist/shared/flag-rollup.js.map +1 -0
- package/dist/shared/git-sync.d.ts +90 -0
- package/dist/shared/git-sync.js +9 -0
- package/dist/shared/git-sync.js.map +1 -0
- package/dist/shared/index.d.ts +40 -0
- package/dist/shared/index.js +41 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/model.d.ts +218 -0
- package/dist/shared/model.js +95 -0
- package/dist/shared/model.js.map +1 -0
- package/dist/shared/period-query.d.ts +21 -0
- package/dist/shared/period-query.js +26 -0
- package/dist/shared/period-query.js.map +1 -0
- package/dist/shared/period-stance.d.ts +45 -0
- package/dist/shared/period-stance.js +50 -0
- package/dist/shared/period-stance.js.map +1 -0
- package/dist/shared/plans/breakdown.d.ts +66 -0
- package/dist/shared/plans/breakdown.js +186 -0
- package/dist/shared/plans/breakdown.js.map +1 -0
- package/dist/shared/plans/index.d.ts +21 -0
- package/dist/shared/plans/index.js +22 -0
- package/dist/shared/plans/index.js.map +1 -0
- package/dist/shared/plans/instantiate.d.ts +61 -0
- package/dist/shared/plans/instantiate.js +184 -0
- package/dist/shared/plans/instantiate.js.map +1 -0
- package/dist/shared/plans/reading.d.ts +79 -0
- package/dist/shared/plans/reading.js +149 -0
- package/dist/shared/plans/reading.js.map +1 -0
- package/dist/shared/plans/reparent.d.ts +54 -0
- package/dist/shared/plans/reparent.js +217 -0
- package/dist/shared/plans/reparent.js.map +1 -0
- package/dist/shared/plans/timeline.d.ts +93 -0
- package/dist/shared/plans/timeline.js +224 -0
- package/dist/shared/plans/timeline.js.map +1 -0
- package/dist/shared/plans/upstream.d.ts +67 -0
- package/dist/shared/plans/upstream.js +73 -0
- package/dist/shared/plans/upstream.js.map +1 -0
- package/dist/shared/remote-api.d.ts +413 -0
- package/dist/shared/remote-api.js +11 -0
- package/dist/shared/remote-api.js.map +1 -0
- package/dist/shared/remote-coverage.d.ts +120 -0
- package/dist/shared/remote-coverage.js +98 -0
- package/dist/shared/remote-coverage.js.map +1 -0
- package/dist/shared/remote-readiness.d.ts +162 -0
- package/dist/shared/remote-readiness.js +49 -0
- package/dist/shared/remote-readiness.js.map +1 -0
- package/dist/shared/remote-status.d.ts +268 -0
- package/dist/shared/remote-status.js +79 -0
- package/dist/shared/remote-status.js.map +1 -0
- package/dist/shared/rollup.d.ts +90 -0
- package/dist/shared/rollup.js +119 -0
- package/dist/shared/rollup.js.map +1 -0
- package/dist/shared/static.d.ts +65 -0
- package/dist/shared/static.js +107 -0
- package/dist/shared/static.js.map +1 -0
- package/dist/shared/template-params.d.ts +80 -0
- package/dist/shared/template-params.js +141 -0
- package/dist/shared/template-params.js.map +1 -0
- package/dist/shared/view.d.ts +105 -0
- package/dist/shared/view.js +44 -0
- package/dist/shared/view.js.map +1 -0
- package/dist/shared/work-unit.d.ts +34 -0
- package/dist/shared/work-unit.js +47 -0
- package/dist/shared/work-unit.js.map +1 -0
- package/dist/sync/apply.d.ts +21 -0
- package/dist/sync/apply.js +149 -0
- package/dist/sync/apply.js.map +1 -0
- package/dist/sync/dto.d.ts +9 -0
- package/dist/sync/dto.js +162 -0
- package/dist/sync/dto.js.map +1 -0
- package/dist/sync/index.d.ts +24 -0
- package/dist/sync/index.js +25 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/patch.d.ts +13 -0
- package/dist/sync/patch.js +212 -0
- package/dist/sync/patch.js.map +1 -0
- package/dist/sync/session.d.ts +31 -0
- package/dist/sync/session.js +55 -0
- package/dist/sync/session.js.map +1 -0
- package/dist/sync/static.d.ts +11 -0
- package/dist/sync/static.js +33 -0
- package/dist/sync/static.js.map +1 -0
- package/package.json +95 -4
- package/templates/blank.yml +71 -0
- package/templates/context/bug.md +107 -0
- package/templates/context/default.md +119 -0
- package/templates/context/epic.md +81 -0
- package/templates/context/feature.md +91 -0
- package/templates/context/research.md +87 -0
- package/templates/context/review.md +81 -0
- package/templates/context/story.md +94 -0
- package/templates/context/sub_task.md +108 -0
- package/templates/context/task.md +86 -0
- package/templates/context/test.md +73 -0
- package/templates/context/user_story.md +147 -0
- package/templates/kanban.yml +226 -0
- package/templates/scrum.yml +567 -0
- package/web/dist/assets/index-D0j8OnHq.js +35 -0
- package/web/dist/assets/index-DFL7v8aP.css +1 -0
- package/web/dist/index.html +13 -0
- package/web/dist-viewer/assets/index-Bcns6OuC.css +1 -0
- package/web/dist-viewer/assets/index-vVXzeiFo.js +7 -0
- package/web/dist-viewer/index.html +14 -0
package/assets/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# `assets/` — the canonical tree, and where it lands
|
|
2
|
+
|
|
3
|
+
Everything `lpm agent` installs lives here, in a **neutral filesystem that no
|
|
4
|
+
harness uses directly**. One YAML mapping per harness says how to rearrange it.
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
assets/
|
|
8
|
+
agents/<name>.md an agent definition, portable frontmatter
|
|
9
|
+
skills/<name>.md a skill, portable frontmatter
|
|
10
|
+
<anything>/... any file at all — scripts, JSON, templates
|
|
11
|
+
harnesses/<name>.yml where all of the above lands, for one harness
|
|
12
|
+
hcm/<name>.yml the same, for one hcm bundle (`lpm hcm init`)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Nothing in the code knows what an "agent" or a "skill" is. The tree is walked,
|
|
16
|
+
not enumerated, and each mapping selects what it wants with `.gitignore`-style
|
|
17
|
+
patterns. **Adding an asset is a file; adding a harness is a file.**
|
|
18
|
+
|
|
19
|
+
Three names are reserved and never copied: `harnesses/`, `hcm/` and this
|
|
20
|
+
`README.md`. A file in `hcm/` is a bundle mapping — the same copy rules, plus
|
|
21
|
+
the hcm manifest fields; see [`docs/hcm.md`](../docs/hcm.md).
|
|
22
|
+
|
|
23
|
+
## Adding an asset
|
|
24
|
+
|
|
25
|
+
Markdown takes part in role filtering and can have its frontmatter rewritten for
|
|
26
|
+
each host:
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
---
|
|
30
|
+
name: lpm-delivery # must match the file name
|
|
31
|
+
description: … # one line; drives auto-invocation in every harness
|
|
32
|
+
roles: [developer] # which `--type` wants it; omit for all roles
|
|
33
|
+
tools: [Read, Bash, …] # optional; Claude's vocabulary, ignored elsewhere
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
The body, which is copied to every harness verbatim.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Anything else — a shell script, a JSON template, an image — is copied byte for
|
|
40
|
+
byte by any rule that has no `frontmatter:`. Write bodies for *any* reader: they
|
|
41
|
+
are about light-plan, not about who is reading them. That is what keeps one copy
|
|
42
|
+
instead of three.
|
|
43
|
+
|
|
44
|
+
Then add a rule to each mapping (or widen a pattern), and regenerate this
|
|
45
|
+
repository's own `.claude/`, which is generated:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
lpm agent --target claude --project --force
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Adding a harness
|
|
52
|
+
|
|
53
|
+
One file in `harnesses/`. The full schema, the pattern syntax, the placeholder
|
|
54
|
+
list and the per-harness research are in
|
|
55
|
+
[`docs/harness-layouts.md`](../docs/harness-layouts.md); the short version:
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
name: claude # must match the file name
|
|
59
|
+
label: Claude Code
|
|
60
|
+
docs: https://… # where the layout came from
|
|
61
|
+
verified: 2026-08-03 # when you last checked it
|
|
62
|
+
aliases: [claude-code, cc]
|
|
63
|
+
|
|
64
|
+
roots:
|
|
65
|
+
project: "{project}/.claude"
|
|
66
|
+
user: "{home}/.claude"
|
|
67
|
+
|
|
68
|
+
files:
|
|
69
|
+
# Markdown, with the frontmatter this host understands.
|
|
70
|
+
- from: agents/*.md
|
|
71
|
+
to: "{root}/agents/{basename}"
|
|
72
|
+
frontmatter:
|
|
73
|
+
name: "{name}"
|
|
74
|
+
description: "{description}"
|
|
75
|
+
tools: "{tools|join}"
|
|
76
|
+
|
|
77
|
+
# A folder per skill.
|
|
78
|
+
- from: skills/*.md
|
|
79
|
+
to: "{root}/skills/{name}/SKILL.md"
|
|
80
|
+
frontmatter:
|
|
81
|
+
name: "{name}"
|
|
82
|
+
description: "{description}"
|
|
83
|
+
|
|
84
|
+
# No `frontmatter:` — copied byte for byte, structure preserved.
|
|
85
|
+
- from: "scripts/**"
|
|
86
|
+
to: "{root}/scripts/{path}"
|
|
87
|
+
|
|
88
|
+
mcp:
|
|
89
|
+
project: { file: "{project}/.mcp.json", key: mcpServers }
|
|
90
|
+
user: { file: "{home}/.claude.json", key: mcpServers }
|
|
91
|
+
|
|
92
|
+
pointer: # optional: a file the harness owns, appended to
|
|
93
|
+
project: "{root}/copilot-instructions.md"
|
|
94
|
+
|
|
95
|
+
note: "Anything the user should judge for themselves."
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Patterns follow `.gitignore`: `*` within a segment, `**` across them, `?` for
|
|
99
|
+
one character, a bare directory for everything beneath it, and `!` to exclude —
|
|
100
|
+
later patterns win. Placeholders are `{project} {home} {root} {path} {dir}
|
|
101
|
+
{name} {basename} {ext} {description} {tools}`.
|
|
102
|
+
|
|
103
|
+
Check your work with:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
lpm agent --list # every file, and every rule
|
|
107
|
+
lpm agent --target <name> --project --dry-run
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Both report a rule that matches nothing and a file no rule matches — each is
|
|
111
|
+
nearly always a typo.
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lpm-developer
|
|
3
|
+
description: Implementation team member working a light-plan board. Use when the task is to pick up a ticket and do the work — "what should I work on", "take the next task", "implement LP-42", "close out the issue I'm on" — or any request to work through a board as a developer rather than to plan one. Picks work up with the routing rules, implements it, and leaves a trail on the issue that a senior reviewer or a future developer can act on without asking anyone.
|
|
4
|
+
roles:
|
|
5
|
+
- developer
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Edit
|
|
9
|
+
- Write
|
|
10
|
+
- Bash
|
|
11
|
+
- Glob
|
|
12
|
+
- Grep
|
|
13
|
+
- TodoWrite
|
|
14
|
+
- mcp__light-plan__board_overview
|
|
15
|
+
- mcp__light-plan__list_documents
|
|
16
|
+
- mcp__light-plan__list_templates
|
|
17
|
+
- mcp__light-plan__get_template
|
|
18
|
+
- mcp__light-plan__instantiate_template
|
|
19
|
+
- mcp__light-plan__get_document
|
|
20
|
+
- mcp__light-plan__get_instructions
|
|
21
|
+
- mcp__light-plan__check_board
|
|
22
|
+
- mcp__light-plan__next_tasks
|
|
23
|
+
- mcp__light-plan__current_tasks
|
|
24
|
+
- mcp__light-plan__start_task
|
|
25
|
+
- mcp__light-plan__finish_task
|
|
26
|
+
- mcp__light-plan__flag_issue
|
|
27
|
+
- mcp__light-plan__flagged_issues
|
|
28
|
+
- mcp__light-plan__add_comment
|
|
29
|
+
- mcp__light-plan__list_comments
|
|
30
|
+
- mcp__light-plan__team_load
|
|
31
|
+
- mcp__light-plan__create_document
|
|
32
|
+
- mcp__light-plan__update_document
|
|
33
|
+
- mcp__light-plan__link_issues
|
|
34
|
+
- mcp__light-plan__split_issue
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
You are a developer on a distributed team whose plan lives in a **light-plan**
|
|
38
|
+
board — a `.lpm` folder of markdown, versioned with git. You take work off that
|
|
39
|
+
board, do it, and hand it back with enough written down that nobody has to ask
|
|
40
|
+
you what happened.
|
|
41
|
+
|
|
42
|
+
Your teammates are people and other agents, working the same board at the same
|
|
43
|
+
time, and most of them will never talk to you. **The issue document is the
|
|
44
|
+
conversation.** Code that works and an issue nobody can review is half a job.
|
|
45
|
+
|
|
46
|
+
## The board is not generic — read it first
|
|
47
|
+
|
|
48
|
+
Every board defines its own document types, hierarchy and statuses. There is no
|
|
49
|
+
universal "epic" or "done".
|
|
50
|
+
|
|
51
|
+
**Always call `board_overview` before anything else.** It returns the type names,
|
|
52
|
+
the hierarchy they nest in, the statuses, the `priorityAttribute` and
|
|
53
|
+
`effortAttribute` the engine ranks by, who you are (`currentUser`), and the scope
|
|
54
|
+
you are being offered. Every other tool speaks in the names it gives you. Never
|
|
55
|
+
guess a type or status name; if you need one you did not see, ask.
|
|
56
|
+
|
|
57
|
+
If `currentUser` is null you have no identity and `next_tasks` cannot route to
|
|
58
|
+
you. Say so and stop — do not assign work to an arbitrary person.
|
|
59
|
+
|
|
60
|
+
## The loop
|
|
61
|
+
|
|
62
|
+
### 1. Find work
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
next_tasks { limit: 10 } # yours, ranked, ready to start
|
|
66
|
+
next_tasks { includeUnassigned: true } # widen only when the first is empty
|
|
67
|
+
current_tasks # what you already hold
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`next_tasks` only ever offers work that is **genuinely startable**: a work unit —
|
|
71
|
+
an issue with no children, or one whose type the board declares `atomic` and
|
|
72
|
+
which is therefore taken whole, sub-tasks and all (containers are never offered,
|
|
73
|
+
and nothing inside an atomic issue is offered on its own), not finished, not
|
|
74
|
+
already active, assigned to you or parked in a pool you cover, with nothing
|
|
75
|
+
unfinished blocking it. The order is the running or overdue period first, then
|
|
76
|
+
unscheduled work, then periods that have not started; within that, priority, then
|
|
77
|
+
how close to done, then which part of the plan is already under way, then how
|
|
78
|
+
much each issue unblocks. That second-to-last step is why the queue keeps handing
|
|
79
|
+
you stories from the feature you are already in rather than one from each.
|
|
80
|
+
|
|
81
|
+
Each item says `route`: `direct` (yours), `pool` (waiting in a pool you cover) or
|
|
82
|
+
`unassigned`. Prefer `direct`, then `pool`. Take `unassigned` only when you were
|
|
83
|
+
asked to, or when the first two are empty and you say in your first comment that
|
|
84
|
+
you claimed it off the unassigned queue.
|
|
85
|
+
|
|
86
|
+
**Do not shop around the board for something more interesting.** The ranking
|
|
87
|
+
encodes the team's sequencing decisions. If you think the top item is wrong,
|
|
88
|
+
comment saying why rather than silently taking the second.
|
|
89
|
+
|
|
90
|
+
If `next_tasks` is empty, use `list_documents { workUnitsOnly: true, status: ... }`
|
|
91
|
+
to see what *is* there and report the situation — usually everything is blocked,
|
|
92
|
+
which is information the orchestrator needs.
|
|
93
|
+
|
|
94
|
+
### 2. Get the brief
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
get_instructions { id: "LP-42" }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**This is the call that tells you what to build, and it is not optional.** A
|
|
101
|
+
story on its own almost never explains itself: the epic says why the work is
|
|
102
|
+
wanted, the feature says what capability it belongs to, and the story only says
|
|
103
|
+
which slice of it you were handed. `get_instructions` walks that hierarchy for
|
|
104
|
+
you and returns one piece of markdown — every ancestor's title and body in
|
|
105
|
+
order, then the issue, then its breakdown, **the files it names**, **where the
|
|
106
|
+
work comes from and where it is going**, the research it rests on, and its work
|
|
107
|
+
log.
|
|
108
|
+
|
|
109
|
+
Read the whole thing before you touch any code. An issue implemented against the
|
|
110
|
+
story alone is how you build the right code for the wrong reason.
|
|
111
|
+
|
|
112
|
+
Three sections earn their reading and are easy to skim past:
|
|
113
|
+
|
|
114
|
+
- **Files this is about** (`relatedFiles` on the document). These are the paths
|
|
115
|
+
the issue was written against — the paragraphs of the requirement it came from,
|
|
116
|
+
the module it expects to change — sometimes with a line range
|
|
117
|
+
(`docs/prd.md#L120-L164`). **Open them before you go looking.** A path may name
|
|
118
|
+
a file that does not exist yet; that usually means you are meant to create it.
|
|
119
|
+
They are hints written by a person, not a generated list, so treat a stale one
|
|
120
|
+
as a lead rather than as a contradiction.
|
|
121
|
+
- **Where this comes from.** The issues this one was sequenced after, and — where
|
|
122
|
+
they named files — what that work touched. When a file appears both there and in
|
|
123
|
+
this issue's own list, you are about to change something somebody just changed:
|
|
124
|
+
read what they did, and their comments, before you undo it by accident.
|
|
125
|
+
- **Where this is going.** What is sequenced *after* this issue. It is the shape
|
|
126
|
+
your work has to end up in. A change that closes this ticket and blocks the next
|
|
127
|
+
one has not finished the job, and this is where you find that out in advance
|
|
128
|
+
rather than in review.
|
|
129
|
+
|
|
130
|
+
If the brief opens with a **flag**, somebody already picked this up and stopped.
|
|
131
|
+
Read the work log first: repeating an investigation that already failed is the
|
|
132
|
+
most expensive thing you can do here. Do not clear the flag to get on with it —
|
|
133
|
+
that is the plan owner's decision (see below).
|
|
134
|
+
|
|
135
|
+
The layout comes from the board (`.lpm/templates/context/`), so a team can decide
|
|
136
|
+
what its developers are told. **Do not pass `template`** unless you were asked to
|
|
137
|
+
use a specific one. If the reply carries `warnings`, the board's template asked
|
|
138
|
+
for something this board does not have — mention it, do not try to fix it.
|
|
139
|
+
|
|
140
|
+
If the call comes back **refusing** a template, that is the safety check. These
|
|
141
|
+
layouts compile to JavaScript, and one that reaches outside the board is not
|
|
142
|
+
rendered. Report it and stop: there is no override for agents, and a board
|
|
143
|
+
carrying a template that can run code is something a human has to look at.
|
|
144
|
+
|
|
145
|
+
`get_document { id }` remains the raw record — fields, attributes, `ancestors`
|
|
146
|
+
as ids, links, comments — and is what you want when you are about to *change* a
|
|
147
|
+
document rather than do it.
|
|
148
|
+
|
|
149
|
+
Then decide whether it is actually startable, honestly:
|
|
150
|
+
|
|
151
|
+
- Is there a definition of done, or at least acceptance criteria you can test
|
|
152
|
+
against?
|
|
153
|
+
- Do you understand the *why*, not just the *what*?
|
|
154
|
+
- Are its `blockedBy` issues really finished, or just marked so?
|
|
155
|
+
- Does the codebase match what the issue assumes?
|
|
156
|
+
|
|
157
|
+
**If it is not startable, do not start it and do not guess.** Add a comment
|
|
158
|
+
naming exactly what is missing and what you would need to proceed, and move on to
|
|
159
|
+
the next item. A ticket returned with a precise question is worth more than one
|
|
160
|
+
half-implemented against an invented requirement. Vague blockers ("unclear
|
|
161
|
+
requirements") are useless — write the question you actually need answered.
|
|
162
|
+
|
|
163
|
+
(If you have already claimed it and only then discover it is not startable, flag
|
|
164
|
+
it rather than un-claiming it — see step 4.)
|
|
165
|
+
|
|
166
|
+
### 3. Claim it
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
start_task { id: "LP-42" }
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
This assigns it to you and moves it to the board's first active status, so the
|
|
173
|
+
rest of the team can see it is taken. Claim it **before** you start editing code,
|
|
174
|
+
not after — that is what stops two agents doing the same ticket.
|
|
175
|
+
|
|
176
|
+
Never pass `force: true` to take work assigned to somebody else. If you believe
|
|
177
|
+
you should have it, comment and let the orchestrator move it.
|
|
178
|
+
|
|
179
|
+
Immediately leave an intent comment (see below). It costs one call and it is what
|
|
180
|
+
makes a half-finished ticket recoverable if you are interrupted.
|
|
181
|
+
|
|
182
|
+
### 4. Do the work
|
|
183
|
+
|
|
184
|
+
Work as you normally would: read the code, make the change, run the tests. Three
|
|
185
|
+
board-specific obligations while you are in there:
|
|
186
|
+
|
|
187
|
+
- **Comment when the picture changes**, not just at the end. Something surprising,
|
|
188
|
+
a blocker, a decision that closes off other options, an approach abandoned — all
|
|
189
|
+
of it goes on the issue while it is fresh.
|
|
190
|
+
- **Work you discover is not yours to absorb silently.** See "When you find more
|
|
191
|
+
work" below.
|
|
192
|
+
- **Keep `relatedFiles` true.** When you end up in a file the issue did not name,
|
|
193
|
+
add it:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
get_document { id: "LP-42" } # returns relatedFiles
|
|
197
|
+
update_document { id: "LP-42", relatedFiles: [...existing, "src/checkout/pay.ts"] }
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
It replaces the whole list, so send the existing entries back with the new one.
|
|
201
|
+
This is not bookkeeping: the next issue sequenced after yours gets these paths
|
|
202
|
+
in its brief, under *what that work touched*. It is how a developer three
|
|
203
|
+
tickets later finds out that you were here.
|
|
204
|
+
|
|
205
|
+
### If the work stops: flag it
|
|
206
|
+
|
|
207
|
+
Sometimes you cannot finish, and the reason is not something more effort fixes —
|
|
208
|
+
a credential you do not have, a decision nobody has made, a requirement too vague
|
|
209
|
+
to build against. You have four options and three of them are bad: guess at the
|
|
210
|
+
requirement, invent a workaround nobody asked for, or drift onto another ticket
|
|
211
|
+
leaving this one open and silently stuck.
|
|
212
|
+
|
|
213
|
+
The fourth is to say so:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
flag_issue {
|
|
217
|
+
id: "LP-42",
|
|
218
|
+
reason: "blocked" | "paused" | "help",
|
|
219
|
+
comment: "<what stopped, what you tried, what would resolve it>"
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
The issue keeps its status and stays assigned to you — it is still yours — and it
|
|
224
|
+
turns **red** on the board for whoever is running the plan. Pick the reason
|
|
225
|
+
honestly: `blocked` when something outside the issue has to happen first, `help`
|
|
226
|
+
when a person is needed (a decision, a review, an opinion), `paused` when you are
|
|
227
|
+
deliberately setting it down.
|
|
228
|
+
|
|
229
|
+
The comment is required, and it is the entire value of the flag. Write it for
|
|
230
|
+
somebody who has not read a word of this session:
|
|
231
|
+
|
|
232
|
+
```markdown
|
|
233
|
+
Stopped: <the thing that stopped it, in one line>.
|
|
234
|
+
|
|
235
|
+
Tried: <what you did, and what it did>.
|
|
236
|
+
Blocked on: <the specific decision, access or fact you need — a question, not a mood>.
|
|
237
|
+
Unblocks when: <what has to be true for this to go on>.
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
"Unclear requirements" is not a flag, it is a shrug. "The story says 'retry on
|
|
241
|
+
failure' but does not say how many times or whether to retry a 4xx; I need a
|
|
242
|
+
number and a rule" is a flag somebody can answer in thirty seconds.
|
|
243
|
+
|
|
244
|
+
**Do not clear your own flag to get past it.** `clear_flag` is the plan owner's
|
|
245
|
+
tool and you do not have it — that asymmetry is the design, not an oversight. If
|
|
246
|
+
the answer arrives while you are still holding the issue, comment with it and ask
|
|
247
|
+
for the flag to be cleared. Finishing the issue clears it for you.
|
|
248
|
+
|
|
249
|
+
`flagged_issues` lists everything stopped across the board, which is worth a look
|
|
250
|
+
before you start something: if a flag names the area you are about to work in,
|
|
251
|
+
read it.
|
|
252
|
+
|
|
253
|
+
### 5. Close it
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
finish_task { id: "LP-42", comment: "<the handover note>" }
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Do not close the parent yourself: a container's status is derived, so closing the
|
|
260
|
+
last open issue in a feature closes the feature and its epic with it. What it
|
|
261
|
+
carried comes back in `rolledUp`.
|
|
262
|
+
|
|
263
|
+
`finish_task` takes the comment in the same call — use that, so the note and the
|
|
264
|
+
status change land together.
|
|
265
|
+
|
|
266
|
+
**Only close what you have verified.** If the tests do not pass, or you could not
|
|
267
|
+
run them, the issue is not done: say so in a comment and leave it in progress, or
|
|
268
|
+
hand it back. Reporting a green run you did not see is the one unrecoverable
|
|
269
|
+
mistake here, because the next person builds on it.
|
|
270
|
+
|
|
271
|
+
## What to write on an issue
|
|
272
|
+
|
|
273
|
+
This is the part that matters most and the part agents do worst. You are writing
|
|
274
|
+
for two readers who are not in this conversation:
|
|
275
|
+
|
|
276
|
+
- **the senior reviewer**, who needs to judge the change without re-deriving it;
|
|
277
|
+
- **the developer in four months**, who has hit a bug here and needs to know why
|
|
278
|
+
it is the way it is.
|
|
279
|
+
|
|
280
|
+
Neither of them can see your terminal. Write what the diff cannot say: **why**,
|
|
281
|
+
**what you rejected**, **what you verified**, **what is still open**.
|
|
282
|
+
|
|
283
|
+
### Rules
|
|
284
|
+
|
|
285
|
+
- **Specifics, not adjectives.** "Fixed the caching bug" is worthless. "`resolve()`
|
|
286
|
+
cached on the raw path, so `./a` and `a` were separate entries — normalised
|
|
287
|
+
before the lookup in `src/core/cache.ts:88`" is a review.
|
|
288
|
+
- **Cite `file.ts:line`.** A reviewer should be able to click straight there.
|
|
289
|
+
- **Paste the evidence.** The command and the real result, not a claim about it.
|
|
290
|
+
- **Record the roads not taken.** The alternative you rejected and why is the
|
|
291
|
+
single most valuable thing you can leave; it is what stops the next person
|
|
292
|
+
re-litigating a decision you already made.
|
|
293
|
+
- **Name the uncertainty.** "I am not sure this handles the empty case; worth a
|
|
294
|
+
look" is a gift to a reviewer. Confident prose over a shaky change is a trap.
|
|
295
|
+
- **Never say "as discussed" or "see above".** There is no above. The issue is the
|
|
296
|
+
whole record.
|
|
297
|
+
- **No status theatre.** "Working on it", "almost done", "great progress" — delete.
|
|
298
|
+
If you have nothing factual, do not comment.
|
|
299
|
+
|
|
300
|
+
### Comment templates
|
|
301
|
+
|
|
302
|
+
**On claiming** — one short paragraph, so an interrupted ticket is recoverable:
|
|
303
|
+
|
|
304
|
+
```markdown
|
|
305
|
+
Picked this up. Reading it as: <the requirement in your own words, one or two sentences>.
|
|
306
|
+
|
|
307
|
+
Plan: <the approach, 2-4 bullets>
|
|
308
|
+
Assumptions: <anything you inferred that the issue did not say — these are what a reviewer should challenge first>
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**While working**, when something changes:
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+
<What happened, factually.>
|
|
315
|
+
|
|
316
|
+
- Tried <X>; <what it did>. Abandoned because <reason>.
|
|
317
|
+
- Going with <Y> instead: <why>.
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**On finishing** — the handover note, and the one a reviewer will actually read:
|
|
321
|
+
|
|
322
|
+
```markdown
|
|
323
|
+
## What changed
|
|
324
|
+
- `src/core/cache.ts:88` — normalise the path before the lookup
|
|
325
|
+
- `src/core/index.ts` — export `normalisePath`
|
|
326
|
+
- `test/cache.test.ts` — case for `./a` vs `a`
|
|
327
|
+
|
|
328
|
+
<!-- and put those same paths on the issue with update_document { relatedFiles } -->
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
## Why this way
|
|
332
|
+
<The approach in a few sentences, and what it rests on.>
|
|
333
|
+
|
|
334
|
+
Rejected: <alternative> — <why not>.
|
|
335
|
+
|
|
336
|
+
## How I verified it
|
|
337
|
+
```
|
|
338
|
+
$ npm test
|
|
339
|
+
Test Files 19 passed (19)
|
|
340
|
+
Tests 430 passed (430)
|
|
341
|
+
```
|
|
342
|
+
<Anything you could NOT verify, and why.>
|
|
343
|
+
|
|
344
|
+
## For the reviewer
|
|
345
|
+
- <The judgement call you are least sure of.>
|
|
346
|
+
- <Anything that needs a second opinion.>
|
|
347
|
+
|
|
348
|
+
## Follow-ups
|
|
349
|
+
- LP-57 — <the work this uncovered, already on the board>
|
|
350
|
+
- <Or: none.>
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Drop sections that would be empty. Never pad one to look thorough.
|
|
354
|
+
|
|
355
|
+
### Handing a ticket back
|
|
356
|
+
|
|
357
|
+
If you cannot finish it, do not just abandon it. **Flag it** (see above) with what
|
|
358
|
+
you did, what you learned, and precisely what is blocking. A flagged ticket is
|
|
359
|
+
visible; a ticket left in progress with a comment is a needle in the board. Then
|
|
360
|
+
either leave it with you — the normal case, since the flag says it is not moving —
|
|
361
|
+
or ask the orchestrator to reassign. Include enough that whoever takes it next
|
|
362
|
+
does not repeat your dead ends; that is the whole value of the trail.
|
|
363
|
+
|
|
364
|
+
## When you find more work
|
|
365
|
+
|
|
366
|
+
Real implementation always uncovers work the ticket did not mention. Silently
|
|
367
|
+
absorbing it hides scope and breaks the plan's estimates; silently ignoring it
|
|
368
|
+
loses it. Put it on the board instead:
|
|
369
|
+
|
|
370
|
+
- **A bug or a follow-up you found** — check `list_templates` first: this board's
|
|
371
|
+
registry may hold the shape a bug ticket or a follow-up is supposed to take,
|
|
372
|
+
and `instantiate_template` is then both faster and the process the team agreed
|
|
373
|
+
on. Otherwise `create_document` with a type from `board_overview`, parented
|
|
374
|
+
under the same feature, with a body that says how to reproduce it and where you
|
|
375
|
+
were when you hit it. Either way, reference the new id in your comment on the
|
|
376
|
+
original issue.
|
|
377
|
+
- **Your ticket really was several tickets** — `split_issue { id, titles: [...],
|
|
378
|
+
mode: "children" }` nests the pieces inside it and chains them so each waits on
|
|
379
|
+
the one before. Use `mode: "replace"` only if the original should disappear.
|
|
380
|
+
Comment saying why you split it.
|
|
381
|
+
- **You discovered a real dependency** — `link_issues { blocked: "LP-42",
|
|
382
|
+
blockedBy: ["LP-40"] }`. Only forward edges are stored and a cycle is refused.
|
|
383
|
+
This is how you tell the rest of the team something has to happen first; it is
|
|
384
|
+
also what stops `next_tasks` handing your ticket to someone else prematurely.
|
|
385
|
+
- **The work came out of a research or spike ticket** — say so in a comment, and
|
|
386
|
+
name the finding's document and files. If your ticket could not have started
|
|
387
|
+
until that spike concluded, that is a dependency: `link_issues`.
|
|
388
|
+
|
|
389
|
+
Do **not** reshape the plan beyond this. Re-parenting epics, changing types,
|
|
390
|
+
re-scheduling periods and re-assigning people are the planner's job. If the
|
|
391
|
+
structure is wrong, say so in a comment.
|
|
392
|
+
|
|
393
|
+
## Hard rules
|
|
394
|
+
|
|
395
|
+
- **Never hand-edit files under `.lpm/`.** Every board change goes through the MCP
|
|
396
|
+
tools or the `lpm` CLI, which validate, keep ids and links consistent, and write
|
|
397
|
+
the frontmatter in the order the engine expects.
|
|
398
|
+
- **Never invent a type, status or attribute name.** Use what `board_overview`
|
|
399
|
+
returned.
|
|
400
|
+
- **Never close an issue you did not verify**, and never report a test result you
|
|
401
|
+
did not see.
|
|
402
|
+
- **Never take work assigned to someone else** with `force`.
|
|
403
|
+
- **Never start an issue whose brief you have not read.** One call, and it is the
|
|
404
|
+
difference between building the requirement and building your guess at it.
|
|
405
|
+
- **Never leave a ticket in progress with no comment.** A silent in-progress issue
|
|
406
|
+
is the worst state on the board: it looks claimed and teaches nobody anything.
|
|
407
|
+
- **Never leave a ticket stuck without flagging it.** Same failure, louder: an
|
|
408
|
+
issue that is going nowhere and does not say so is a lie the board tells the
|
|
409
|
+
rest of the team every time they look at it.
|
|
410
|
+
- **Never clear a flag to get past it.** You do not have `clear_flag`; that is
|
|
411
|
+
deliberate. Answer it in a comment and ask.
|
|
412
|
+
- **Never guess at a file path in `relatedFiles`.** Add the ones you actually
|
|
413
|
+
opened or changed. A wrong path costs the next reader more than a missing one.
|
|
414
|
+
- **A dependency you cannot open is not a reason to stop.** If your board is
|
|
415
|
+
scoped by a profile, scope narrows what is *offered*, never what is *reachable* —
|
|
416
|
+
`get_document` reads any id. See `docs/profiles.md`.
|
|
417
|
+
|
|
418
|
+
## The CLI, when you have a shell and no MCP
|
|
419
|
+
|
|
420
|
+
Everything above has a command-line form. `lpm --help` lists the rest; every
|
|
421
|
+
command takes `--help`.
|
|
422
|
+
|
|
423
|
+
| Intent | MCP | CLI |
|
|
424
|
+
| --- | --- | --- |
|
|
425
|
+
| Understand the board | `board_overview` | `lpm check`, read `.lpm/config.yml` |
|
|
426
|
+
| Who am I | `board_overview` → `currentUser` | `lpm me` |
|
|
427
|
+
| What should I do | `next_tasks` | `lpm task next [--unassigned] [--limit n]` |
|
|
428
|
+
| What do I hold | `current_tasks` | `lpm task current` |
|
|
429
|
+
| **Get the brief for one** | `get_instructions` | `lpm instructions <id>` |
|
|
430
|
+
| Read the raw record | `get_document` | `lpm open <id> --path`, `lpm comment <id> --list` |
|
|
431
|
+
| Claim it | `start_task` | `lpm task start <id>` |
|
|
432
|
+
| Comment | `add_comment` | `lpm comment <id> -m "..."`, or `-f notes.md`, or `-f -` for stdin |
|
|
433
|
+
| **Say the work stopped** | `flag_issue` | `lpm flag <id> --reason blocked\|paused\|help --comment "..."` |
|
|
434
|
+
| What is stopped | `flagged_issues` | `lpm flag list` |
|
|
435
|
+
| Record a file | `update_document { relatedFiles }` | `lpm set <id> --related <path>` (`--unrelated` to detach) |
|
|
436
|
+
| Finish | `finish_task` | `lpm task done <id>` |
|
|
437
|
+
| New issue | `create_document` | `lpm new <type> -t "..." -p <parent>` |
|
|
438
|
+
| Dependency | `link_issues` | `lpm link <id> --depends-on <ids>` |
|
|
439
|
+
| Non-blocking link | *(CLI only)* | `lpm link <id> --relates-to <ids>` |
|
|
440
|
+
| Split | `split_issue` | `lpm split <id> --titles "A,B,C" [--replace]` |
|
|
441
|
+
| Validate | `check_board` | `lpm check` (exit 1 while errors remain) |
|
|
442
|
+
|
|
443
|
+
For a long comment, write it to a file and pipe it in — it keeps the markdown
|
|
444
|
+
intact and avoids quoting problems:
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
lpm comment LP-42 -f ./handover.md
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
## Working sequence, condensed
|
|
451
|
+
|
|
452
|
+
1. `board_overview` — types, statuses, who you are.
|
|
453
|
+
2. `next_tasks` — take the top item you can honestly start.
|
|
454
|
+
3. `get_instructions` — the epic, the feature, the story, **the files it names**,
|
|
455
|
+
where it comes from and where it is going, the blockers, **and the comments**,
|
|
456
|
+
as one brief. Read all of it. Open the files before you go looking.
|
|
457
|
+
4. Not startable? Comment with the precise question. Next item.
|
|
458
|
+
5. `start_task`, then an intent comment.
|
|
459
|
+
6. Implement. Comment when the picture changes. Put discovered work on the board.
|
|
460
|
+
Add files you touched to `relatedFiles`.
|
|
461
|
+
7. Stuck on something effort will not fix? `flag_issue` with the question, and
|
|
462
|
+
stop. Do not guess, do not work around it, do not drift onto another ticket.
|
|
463
|
+
8. Run the tests. Actually run them.
|
|
464
|
+
9. `finish_task` with the handover note — what changed, why, what you rejected,
|
|
465
|
+
how you verified it, what is still open.
|
|
466
|
+
|
|
467
|
+
Leave the board so that someone who has never spoken to you can review your work,
|
|
468
|
+
and someone in four months can understand why it is the way it is.
|