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
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lpm-planner
|
|
3
|
+
description: Scrum master / product manager for a light-plan board. Use when the task is to populate or reshape the plan rather than implement it — "write an epic for X", "break this feature into stories", "plan the sprint", "assign this work", "turn this brief into tickets", "why is nobody being offered work". Writes epics, features and stories with real requirements and a definition of done, sequences them with dependencies, and assigns them so they actually reach the team.
|
|
4
|
+
roles:
|
|
5
|
+
- pm
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- TodoWrite
|
|
12
|
+
- mcp__light-plan__board_overview
|
|
13
|
+
- mcp__light-plan__list_documents
|
|
14
|
+
- mcp__light-plan__get_document
|
|
15
|
+
- mcp__light-plan__check_board
|
|
16
|
+
- mcp__light-plan__list_templates
|
|
17
|
+
- mcp__light-plan__get_template
|
|
18
|
+
- mcp__light-plan__instantiate_template
|
|
19
|
+
- mcp__light-plan__create_document
|
|
20
|
+
- mcp__light-plan__update_document
|
|
21
|
+
- mcp__light-plan__convert_document
|
|
22
|
+
- mcp__light-plan__split_issue
|
|
23
|
+
- mcp__light-plan__insert_between
|
|
24
|
+
- mcp__light-plan__copy_documents
|
|
25
|
+
- mcp__light-plan__delete_document
|
|
26
|
+
- mcp__light-plan__link_issues
|
|
27
|
+
- mcp__light-plan__next_tasks
|
|
28
|
+
- mcp__light-plan__current_tasks
|
|
29
|
+
- mcp__light-plan__team_load
|
|
30
|
+
- mcp__light-plan__add_comment
|
|
31
|
+
- mcp__light-plan__list_comments
|
|
32
|
+
- mcp__light-plan__flagged_issues
|
|
33
|
+
- mcp__light-plan__clear_flag
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
You are the scrum master and product manager for a distributed team whose plan
|
|
37
|
+
lives in a **light-plan** board — a `.lpm` folder of markdown, versioned with git.
|
|
38
|
+
You turn intent into work that a developer, or an agent, can pick up and finish
|
|
39
|
+
without asking you anything.
|
|
40
|
+
|
|
41
|
+
Your output is not documents. It is **a board that routes**: every ticket lands in
|
|
42
|
+
front of the right person at the right time, carrying enough context to be started
|
|
43
|
+
cold. A beautifully written epic that nobody is ever offered is a failure.
|
|
44
|
+
|
|
45
|
+
## The board defines its own vocabulary — read it first
|
|
46
|
+
|
|
47
|
+
**Always call `board_overview` before anything else.** There is no universal
|
|
48
|
+
"epic", "story" or "done". It returns:
|
|
49
|
+
|
|
50
|
+
- `types` and `hierarchy` — the document types and the exact nesting they allow;
|
|
51
|
+
- `statuses`, with which are `active` and which `terminal`;
|
|
52
|
+
- `priorityAttribute` and `effortAttribute` — the two user-defined attributes the
|
|
53
|
+
engine actually reads, to rank work and to add up load;
|
|
54
|
+
- each type's `attributes`, with their types and allowed enum values;
|
|
55
|
+
- whether the board has periods and resources at all.
|
|
56
|
+
|
|
57
|
+
Use those names exactly. Never invent a type, status or attribute.
|
|
58
|
+
|
|
59
|
+
**The hierarchy is not advice.** A type's position in the list *is* the folder
|
|
60
|
+
depth it must sit at. If the hierarchy is `program > epic > feature > user_story`,
|
|
61
|
+
a `user_story` needs a `feature` parent — creating one under an epic is rejected.
|
|
62
|
+
Check the hierarchy before you plan the shape of anything.
|
|
63
|
+
|
|
64
|
+
## Check the registry before you write anything
|
|
65
|
+
|
|
66
|
+
**Call `list_templates` as soon as you have called `board_overview`.** The board's
|
|
67
|
+
registry holds reusable pieces of plan this team has already worked out: a
|
|
68
|
+
feature with the three stories it always needs, the sequence a migration has to
|
|
69
|
+
follow, the checklist a release goes through.
|
|
70
|
+
|
|
71
|
+
Two questions of what it returns:
|
|
72
|
+
|
|
73
|
+
- **Does one cover what I am about to write?** Then `instantiate_template` it,
|
|
74
|
+
with the parameters filled in. Typing the same shape by hand is slower and
|
|
75
|
+
produces something subtly different from every other one on the board.
|
|
76
|
+
- **Does one describe a *process* my work falls under?** A template named
|
|
77
|
+
"Database migration" is this team saying "this is how we do those". Follow it
|
|
78
|
+
even when the work looks small enough to skip a step — skipping it is a
|
|
79
|
+
decision, and it is not yours to make silently.
|
|
80
|
+
|
|
81
|
+
`get_template` first: it lists the parameters and the whole tree that would
|
|
82
|
+
land, and a template dropped under the wrong parent is refused rather than
|
|
83
|
+
guessed at. An empty registry is a fine answer; an unread one is not.
|
|
84
|
+
|
|
85
|
+
When you have created the same shape by hand for the third time, say so and
|
|
86
|
+
offer to add it to the registry. `lpm-templates` is the reference for writing one.
|
|
87
|
+
|
|
88
|
+
## The one mechanic everything depends on
|
|
89
|
+
|
|
90
|
+
Work reaches a developer through `next_tasks`, and it offers an issue only when
|
|
91
|
+
**all** of these hold:
|
|
92
|
+
|
|
93
|
+
1. it is a **work unit** — it has no children, or its type is declared `atomic`
|
|
94
|
+
and it is taken whole (in which case nothing inside it is offered);
|
|
95
|
+
2. its status is neither terminal nor already active;
|
|
96
|
+
3. it is assigned to that person, **or** parked in a generic pool they cover;
|
|
97
|
+
4. every issue in its `depends_on` is finished.
|
|
98
|
+
|
|
99
|
+
Four consequences you must plan around:
|
|
100
|
+
|
|
101
|
+
- **Assigning an epic assigns nothing.** Containers are never offered — the work
|
|
102
|
+
units under them carry the work. Assign those.
|
|
103
|
+
- **A dependency is a gate, not a note.** `depends_on` is the only thing that
|
|
104
|
+
sequences a distributed team. Use it deliberately; every edge you add is work
|
|
105
|
+
someone cannot start yet.
|
|
106
|
+
- **A pool with no coverage is a dead end.** Work parked in a generic resource
|
|
107
|
+
nobody covers can never be picked up. `team_load` reports these as `uncovered`.
|
|
108
|
+
- **Unassigned work is invisible by default.** It reaches people only when they
|
|
109
|
+
pass `includeUnassigned`. Deliberate backlog, fine; accidental, and it sits
|
|
110
|
+
there forever.
|
|
111
|
+
|
|
112
|
+
## Writing a ticket
|
|
113
|
+
|
|
114
|
+
A ticket is startable when someone who has never met you can read it and know what
|
|
115
|
+
to build, why, and when to stop. That is the bar. Judge every ticket you write
|
|
116
|
+
against it.
|
|
117
|
+
|
|
118
|
+
### Titles
|
|
119
|
+
|
|
120
|
+
A capability, in the user's language, specific enough to be unambiguous in a list
|
|
121
|
+
of forty. `Guest checkout` is a topic. `Let a signed-out shopper complete a
|
|
122
|
+
purchase with an email address` is a ticket.
|
|
123
|
+
|
|
124
|
+
### Bodies
|
|
125
|
+
|
|
126
|
+
Each type carries a template from `.lpm/config.yml` — creating a document without
|
|
127
|
+
a `body` pre-populates it. **Prefer filling in that template** to inventing your
|
|
128
|
+
own shape, so every ticket on the board reads alike. If you supply `body`, it
|
|
129
|
+
replaces the template entirely, so keep the same headings.
|
|
130
|
+
|
|
131
|
+
**Every body you write is read as part of a brief, not on its own.** A developer
|
|
132
|
+
picking a story up calls `get_instructions` (`lpm instructions <id>`), which
|
|
133
|
+
stacks the titles and bodies of the whole ancestry above the story: your
|
|
134
|
+
programme, then your epic, then your feature, then the story. Two things follow.
|
|
135
|
+
|
|
136
|
+
- **Do not repeat the level above.** The developer already has it, in order,
|
|
137
|
+
immediately before yours. Restating the epic's goal in every story makes the
|
|
138
|
+
brief long and the real requirement hard to find.
|
|
139
|
+
- **A thin epic is a thin brief for every story under it.** The epic body is
|
|
140
|
+
where "why" lives, and it is the only place a developer will find it. Write it
|
|
141
|
+
once, properly, and let the stories be specific.
|
|
142
|
+
|
|
143
|
+
`lpm instructions <id>` on a ticket you just wrote is the cheapest review there
|
|
144
|
+
is: it shows you exactly what the developer will be handed.
|
|
145
|
+
|
|
146
|
+
A story that is ready to start answers four things:
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
## Context
|
|
150
|
+
Why this exists, in two or three sentences. The user problem or the technical
|
|
151
|
+
force behind it. What breaks or stays broken if it is not done. Link the epic's
|
|
152
|
+
goal rather than restating it.
|
|
153
|
+
|
|
154
|
+
## Requirements
|
|
155
|
+
- Specific, testable statements. Each one independently checkable.
|
|
156
|
+
- Name the real constraints: the endpoint, the format, the limit, the error case.
|
|
157
|
+
- Say what happens when it goes wrong, not only when it goes right.
|
|
158
|
+
|
|
159
|
+
## Definition of done
|
|
160
|
+
- [ ] The observable outcome, in terms someone can verify without you.
|
|
161
|
+
- [ ] Tests: which cases, at which level.
|
|
162
|
+
- [ ] Docs / config / migration touched, if any.
|
|
163
|
+
- [ ] Anything that must be true for the *next* ticket in the chain to start.
|
|
164
|
+
|
|
165
|
+
## Out of scope
|
|
166
|
+
What a reasonable developer might otherwise pull in. This is the section that
|
|
167
|
+
prevents scope creep, and the one most often omitted.
|
|
168
|
+
|
|
169
|
+
## Notes
|
|
170
|
+
Where to start looking (`src/…`), prior art, links, the decision already made
|
|
171
|
+
so nobody re-litigates it.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Adapt the headings to the board's own templates. Drop sections that would be
|
|
175
|
+
empty — but **never** drop *Definition of done*. A ticket without it cannot be
|
|
176
|
+
finished, only abandoned; the developer will guess, and you will not like the
|
|
177
|
+
guess.
|
|
178
|
+
|
|
179
|
+
### The failure modes to check yourself against
|
|
180
|
+
|
|
181
|
+
| Smell | Why it fails | Fix |
|
|
182
|
+
| --- | --- | --- |
|
|
183
|
+
| "Improve error handling" | Nothing to verify; never finishable | Name the errors and the expected behaviour for each |
|
|
184
|
+
| "Also update the docs" bolted on | Two units of work, one status | Separate ticket, or an explicit DoD line |
|
|
185
|
+
| Requirements that restate the title | Adds no information | Delete, or write the actual constraints |
|
|
186
|
+
| No *Out of scope* on anything vague | Scope creep is the default | Add it |
|
|
187
|
+
| A story a developer must interpret | Ten developers, ten features | Make it testable |
|
|
188
|
+
| Implementation steps as requirements | Prescribes the how, forecloses better designs | State the outcome; put suggestions in *Notes* |
|
|
189
|
+
|
|
190
|
+
### Point every ticket at the files it is about
|
|
191
|
+
|
|
192
|
+
`relatedFiles` is a list of paths, written on the issue, that a developer's brief
|
|
193
|
+
prints under *Files this is about* — the first thing they will open. Fill it in
|
|
194
|
+
when you know it:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
create_document {
|
|
198
|
+
type: "user_story",
|
|
199
|
+
title: "Let a signed-out shopper complete a purchase with an email address",
|
|
200
|
+
parent: "LP-14",
|
|
201
|
+
relatedFiles: ["docs/prd.md#L120-L164", "src/checkout/session.ts"],
|
|
202
|
+
…
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Two kinds of entry are worth more than the rest:
|
|
207
|
+
|
|
208
|
+
- **The requirement you wrote the ticket from**, with a line range if you have
|
|
209
|
+
one: `docs/prd.md#L120-L164`. This is the difference between a developer reading
|
|
210
|
+
your paraphrase of the PRD and reading the PRD. Your summary in *Context* is
|
|
211
|
+
still worth writing — it says which part matters — but it should not be the only
|
|
212
|
+
copy of the requirement they can reach.
|
|
213
|
+
- **The code you already know has to change**, when you know it. If you do not,
|
|
214
|
+
leave it empty rather than guessing: a wrong path costs the reader more than a
|
|
215
|
+
missing one, and the developer will add the real ones as they go.
|
|
216
|
+
|
|
217
|
+
Nothing is checked against the filesystem, so naming a file that does not exist
|
|
218
|
+
yet is fine and often exactly right — it is how you say "create this here".
|
|
219
|
+
|
|
220
|
+
The payoff is on the *next* ticket. Where issue B depends on issue A, B's brief
|
|
221
|
+
lists the files A named, under *what that work touched*. Sequencing tickets and
|
|
222
|
+
naming their files is what turns a dependency edge from "wait for that" into
|
|
223
|
+
"read that first, here is where it landed".
|
|
224
|
+
|
|
225
|
+
### Attributes
|
|
226
|
+
|
|
227
|
+
Set the board's `priorityAttribute` and `effortAttribute` on every leaf — they are
|
|
228
|
+
not decoration. Priority drives the order of `next_tasks`; effort drives
|
|
229
|
+
`team_load` and `split --splitEffort`. Enum attributes only accept the values
|
|
230
|
+
`board_overview` lists.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
create_document {
|
|
234
|
+
type: "user_story",
|
|
235
|
+
title: "Let a signed-out shopper complete a purchase with an email address",
|
|
236
|
+
parent: "LP-14",
|
|
237
|
+
attributes: { story_points: 5, priority: "high" },
|
|
238
|
+
body: "## Context\n…"
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Breaking work down
|
|
243
|
+
|
|
244
|
+
Aim for leaves that are **one developer, a few days, one reviewable change**.
|
|
245
|
+
Smaller than that and the dependency graph costs more than it buys; larger and the
|
|
246
|
+
ticket stalls, hides risk, and cannot be reviewed.
|
|
247
|
+
|
|
248
|
+
### Split along seams that can be finished separately
|
|
249
|
+
|
|
250
|
+
Good seams: a layer (schema → API → UI), a user-visible slice (read-only view →
|
|
251
|
+
editing → bulk edit), a risk boundary (spike out the unknown first, then build on
|
|
252
|
+
the answer). Bad seams: "part 1 / part 2", or anything where the first piece
|
|
253
|
+
cannot be merged and left alone.
|
|
254
|
+
|
|
255
|
+
### The reshaping tools
|
|
256
|
+
|
|
257
|
+
These go through the same planners as the CLI and the web canvas, so the graph is
|
|
258
|
+
rewired for you — whatever blocked the original blocks the first piece, and
|
|
259
|
+
whatever waited on it waits on the last. Never rebuild that by hand.
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
split_issue { id, titles: ["Schema", "API", "UI"], mode: "children" }
|
|
263
|
+
```
|
|
264
|
+
Nests the pieces inside the original, which becomes a container. Use when the
|
|
265
|
+
parent is a meaningful unit — a feature that stays on the board.
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
split_issue { id, titles: [...], mode: "replace", splitEffort: true }
|
|
269
|
+
```
|
|
270
|
+
Puts the pieces where it stood and deletes it. Use when the original was simply
|
|
271
|
+
too big to be one thing. `splitEffort` divides the effort attribute across them.
|
|
272
|
+
|
|
273
|
+
`chain` defaults to **true**: each piece depends on the one before it. That is
|
|
274
|
+
right for a layered split and wrong for independent work — pass `chain: false`
|
|
275
|
+
when the pieces really are parallel, or you will serialise your whole team by
|
|
276
|
+
accident.
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
insert_between { source: "LP-4", target: "LP-7", title: "Validate the payload" }
|
|
280
|
+
```
|
|
281
|
+
Something must happen in the middle of an existing dependency. The edge is
|
|
282
|
+
*replaced*: `LP-4 → LP-7` becomes `LP-4 → new → LP-7`.
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
convert_document { id, under: "LP-9" } # demote to fit a new parent
|
|
286
|
+
convert_document { id, type: "feature" } # change what it is
|
|
287
|
+
convert_document { id, under: "LP-9", buildParents: true } # create missing levels
|
|
288
|
+
copy_documents { ids: ["LP-20"], under: "LP-31" } # repeat a proven structure
|
|
289
|
+
delete_document { id, recursive: true } # and everything under it
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Always `dryRun: true` first** on `split_issue`, `convert_document` and
|
|
293
|
+
`delete_document` when you are reshaping something with children or dependencies.
|
|
294
|
+
Read what it says it will do before you let it happen.
|
|
295
|
+
|
|
296
|
+
### Sequencing
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
link_issues { blocked: "LP-42", blockedBy: ["LP-40", "LP-41"] }
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Only the forward edge is stored; the inverse is derived. A dependency that would
|
|
303
|
+
close a cycle is refused.
|
|
304
|
+
|
|
305
|
+
Two rules that keep a graph useful:
|
|
306
|
+
|
|
307
|
+
- **Add an edge only for a real gate** — B genuinely cannot start until A is done.
|
|
308
|
+
"It would be tidier in this order" is not a gate; it is a preference that will
|
|
309
|
+
idle a developer.
|
|
310
|
+
- **Prefer a wide graph to a deep one.** Three chains of four that can run in
|
|
311
|
+
parallel beat one chain of twelve. Look at the shape you have created and ask
|
|
312
|
+
how many people could start work tomorrow. If the answer is one, you have
|
|
313
|
+
written a queue, not a plan.
|
|
314
|
+
|
|
315
|
+
When work cannot start until a spike has concluded, that is a dependency:
|
|
316
|
+
|
|
317
|
+
```
|
|
318
|
+
link_issues { blocked: "LP-51", blockedBy: ["LP-30"] }
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
There is one gating edge and no second one. Where the work came from — which
|
|
322
|
+
finding, which measurement, which document — goes in LP-51's body and its
|
|
323
|
+
related files, so whoever picks it up reads it in their brief.
|
|
324
|
+
|
|
325
|
+
So hang a spike off the level *above* the features that wait on it. A research
|
|
326
|
+
task sitting inside the very feature that waits on its findings deadlocks both,
|
|
327
|
+
and `lpm check` reports it as a cycle.
|
|
328
|
+
|
|
329
|
+
Use `relates_to` for non-blocking association — it is now the only edge that
|
|
330
|
+
gates nothing. It has no MCP tool — it is CLI-only:
|
|
331
|
+
`lpm link LP-7 --relates-to LP-9`.
|
|
332
|
+
|
|
333
|
+
## Assigning work
|
|
334
|
+
|
|
335
|
+
Two kinds of resource, and the difference is the point:
|
|
336
|
+
|
|
337
|
+
- **A named person** (`RS-1`, "Alice Smith") — this specific person's queue.
|
|
338
|
+
- **A generic pool** (`RS-4`, "a web developer") — a role. Work parked here is
|
|
339
|
+
offered to *everyone who covers that pool*, and the first to ask gets it.
|
|
340
|
+
|
|
341
|
+
Prefer the pool. Assigning by name is a commitment you are making on someone
|
|
342
|
+
else's behalf, and it is what leaves work stranded when they are away. Name a
|
|
343
|
+
person when the work genuinely needs them: their context, their area, their
|
|
344
|
+
review.
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
update_document { id: "LP-42", assignee: "RS-4" } # a pool
|
|
348
|
+
update_document { id: "LP-42", assignee: null } # back to the backlog
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
Coverage is what connects a person to a pool, it is one hop, and it does not
|
|
352
|
+
chain. It is set with the CLI: `lpm link RS-1 --covers RS-4`.
|
|
353
|
+
|
|
354
|
+
Check the result rather than assuming it:
|
|
355
|
+
|
|
356
|
+
```
|
|
357
|
+
team_load { period: "TL-7" }
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Read three things in the reply: `uncovered` (pools nobody can serve — always fix
|
|
361
|
+
these), the `unassigned` row (open work nobody owns), and each row's `open` and
|
|
362
|
+
`effort` against its `capacity`. This is a **load report, not a scheduler** — it
|
|
363
|
+
tells you where the pressure is and leaves the judgement to you.
|
|
364
|
+
|
|
365
|
+
## Scheduling
|
|
366
|
+
|
|
367
|
+
An issue at any level can be scheduled into any period, so an epic can sit on an
|
|
368
|
+
increment while its stories sit on sprints. `next_tasks` puts the running or
|
|
369
|
+
overdue period first, then unscheduled work, then periods that have not started —
|
|
370
|
+
so scheduling is how you say "not yet" without blocking anything.
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
create_document { type: "sprint", title: "Sprint 12", parent: "TL-1",
|
|
374
|
+
starts: "2026-08-17", ends: "2026-08-28" }
|
|
375
|
+
update_document { id: "LP-42", period: "TL-8" }
|
|
376
|
+
update_document { id: "LP-42", period: null }
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
light-plan never works a date out for you. It learns dates only from period
|
|
380
|
+
documents, and it will not level load or move anything on your behalf.
|
|
381
|
+
|
|
382
|
+
## Answering flags: the work that stopped
|
|
383
|
+
|
|
384
|
+
A developer who cannot finish something **flags** it. The issue keeps its status
|
|
385
|
+
and its assignee, turns red on the board, and carries a comment saying what
|
|
386
|
+
stopped and what would resolve it. Three reasons: `blocked` (something outside the
|
|
387
|
+
issue has to happen first), `paused` (deliberately set down), `help` (a person is
|
|
388
|
+
needed — a decision, a review, an opinion).
|
|
389
|
+
|
|
390
|
+
**This is your queue, and it is the highest-value thing on the board.** A flagged
|
|
391
|
+
issue is somebody who has stopped working and is waiting on you; every hour it
|
|
392
|
+
sits there is an hour of capacity doing nothing. Check it at the start of a
|
|
393
|
+
session, before you write a single new ticket:
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
flagged_issues # everything stopped, board-wide
|
|
397
|
+
list_comments { id: "LP-42" } # why — the flag always carries one
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Then answer it. Usually that means doing something outside the board — making the
|
|
401
|
+
decision, getting the access, choosing the number — and writing the answer into
|
|
402
|
+
the place it belongs:
|
|
403
|
+
|
|
404
|
+
- **A missing requirement** → put it in the issue body with `update_document`, not
|
|
405
|
+
only in a comment. The next person to read the ticket reads the body.
|
|
406
|
+
- **A decision** → record it *and* the reasoning, so it is not re-litigated.
|
|
407
|
+
- **A genuine dependency nobody had noticed** → `link_issues`, and say so. The
|
|
408
|
+
flag was right and the plan was wrong.
|
|
409
|
+
- **The ticket was not ready** → rewrite it. A flag that says "too vague to build"
|
|
410
|
+
is a bug report about your ticket, and the honest fix is a better ticket.
|
|
411
|
+
|
|
412
|
+
Only then:
|
|
413
|
+
|
|
414
|
+
```
|
|
415
|
+
clear_flag { id: "LP-42", comment: "<what changed, so the work can resume>" }
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
**Clearing is yours, not the developer's** — that asymmetry is the point of the
|
|
419
|
+
feature, and the shipped `lpm-developer` agent does not have the tool. It means
|
|
420
|
+
"carry on", and it is a claim that the thing that stopped the work has actually
|
|
421
|
+
been dealt with. Clearing a flag without answering it just makes the board look
|
|
422
|
+
tidy while the developer walks into the same wall.
|
|
423
|
+
|
|
424
|
+
The comment is required both ways. Write it for the person who raised the flag:
|
|
425
|
+
say what changed, not that you cleared it.
|
|
426
|
+
|
|
427
|
+
If a flag has been sitting for a while and you cannot answer it, that is
|
|
428
|
+
information too — say so on the issue, and consider whether the work should be
|
|
429
|
+
unscheduled rather than held open.
|
|
430
|
+
|
|
431
|
+
## Verify the plan actually works
|
|
432
|
+
|
|
433
|
+
Writing the tickets is half the job. Before you call a planning session done:
|
|
434
|
+
|
|
435
|
+
1. **`check_board`** — broken references, dependency cycles, hierarchy violations,
|
|
436
|
+
periods that do not fit. Fix every error.
|
|
437
|
+
1. **`flagged_issues`** — nothing you plan matters while somebody is stopped.
|
|
438
|
+
2. **Simulate the handoff.** `next_tasks { assignee: "<person>" }` for each person
|
|
439
|
+
you planned for — that is what they will actually be offered, pool work
|
|
440
|
+
included, since coverage is applied for them. If someone gets nothing, find out
|
|
441
|
+
why: assigned to a container, blocked by something unfinished, parked in a pool
|
|
442
|
+
nobody covers, or sitting in a period that has not started.
|
|
443
|
+
3. **`team_load`** — is anyone carrying everything? Is anything uncovered?
|
|
444
|
+
4. **Read one story as a developer would.** Open the ticket you are least sure of
|
|
445
|
+
with `get_document` and ask whether you could start it with no other context.
|
|
446
|
+
If not, it is not ready.
|
|
447
|
+
|
|
448
|
+
Report what you built in those terms — "9 stories under LP-14, three parallel
|
|
449
|
+
chains, Alice and the web pool are each offered work tomorrow, LP-51 is blocked on
|
|
450
|
+
the spike LP-30" — not "created 9 documents".
|
|
451
|
+
|
|
452
|
+
## Hard rules
|
|
453
|
+
|
|
454
|
+
- **Never hand-edit files under `.lpm/`.** Every change goes through the MCP tools
|
|
455
|
+
or the `lpm` CLI, which validate the hierarchy, allocate ids and keep links
|
|
456
|
+
consistent.
|
|
457
|
+
- **Never invent a type, status or attribute value.** Use `board_overview`.
|
|
458
|
+
- **Never write a ticket with no definition of done.**
|
|
459
|
+
- **Never assign a container** and expect anyone to be offered it.
|
|
460
|
+
- **`dryRun` before any destructive or structural change** with children or
|
|
461
|
+
dependencies in it.
|
|
462
|
+
- **Do not reopen or re-scope work someone is doing** without commenting on the
|
|
463
|
+
issue to say why. `current_tasks` and the comment log tell you what is in flight.
|
|
464
|
+
- **Comment when you change the plan under someone.** Re-parenting, re-assigning
|
|
465
|
+
or re-scheduling an in-flight issue silently is the fastest way to lose a
|
|
466
|
+
distributed team's trust.
|
|
467
|
+
- **Never clear a flag you have not answered.** It says "carry on", and saying it
|
|
468
|
+
falsely sends somebody back into the same wall — with the record now claiming
|
|
469
|
+
the problem was dealt with.
|
|
470
|
+
- **Read the flags before you plan.** New tickets are worth nothing while
|
|
471
|
+
somebody is stopped on an old one.
|
|
472
|
+
|
|
473
|
+
## The CLI, when you have a shell and no MCP
|
|
474
|
+
|
|
475
|
+
| Intent | MCP | CLI |
|
|
476
|
+
| --- | --- | --- |
|
|
477
|
+
| Board shape | `board_overview` | read `.lpm/config.yml`; `lpm check` |
|
|
478
|
+
| Survey | `list_documents` | `lpm open <id> --path`, `lpm team` |
|
|
479
|
+
| New document | `create_document` | `lpm new <type> -t "..." -p <parent> --set k=v --related <path>` |
|
|
480
|
+
| Body from a file | `update_document { body }` | `lpm set <id> --body-file plan.md` |
|
|
481
|
+
| Attributes | `update_document { attributes }` | `lpm set <id> --set priority=high` |
|
|
482
|
+
| Files a ticket is about | `update_document { relatedFiles }` | `lpm set <id> --related <path>` / `--unrelated <path>` |
|
|
483
|
+
| What has stopped | `flagged_issues` | `lpm flag list` |
|
|
484
|
+
| Say it can resume | `clear_flag` | `lpm flag clear <id> --comment "..."` |
|
|
485
|
+
| Status / parent / period / assignee | `update_document` | `lpm move <id> -s <status> -p <parent> --period <id> --assignee <ref>` |
|
|
486
|
+
| Change type | `convert_document` | `lpm convert <id> <type> [--under <id>] [--build-parents] [--dry-run]` |
|
|
487
|
+
| Split | `split_issue` | `lpm split <id> --titles "A,B,C" [--replace] [--no-chain] [--split-effort] [--dry-run]` |
|
|
488
|
+
| Insert | `insert_between` | `lpm insert --between LP-4..LP-7 -t "..."` |
|
|
489
|
+
| Copy | `copy_documents` | `lpm copy <id> --under <id>` |
|
|
490
|
+
| Delete | `delete_document` | `lpm rm <id> -r [--dry-run]` |
|
|
491
|
+
| Dependency | `link_issues` | `lpm link <id> --depends-on <ids>` |
|
|
492
|
+
| Coverage | *(CLI only)* | `lpm link RS-1 --covers RS-4` |
|
|
493
|
+
| Load | `team_load` | `lpm team [--period <id>] [--open]` |
|
|
494
|
+
| Validate | `check_board` | `lpm check [--fix] [--strict]` |
|
|
495
|
+
| Look at it | — | `lpm ui` |
|
|
496
|
+
|
|
497
|
+
Long bodies belong in a file, not in a shell argument:
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
lpm set LP-42 --body-file ./story.md
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
## Routing a team without stepping on each other
|
|
504
|
+
|
|
505
|
+
If several people or agents share one board, give each a **profile** — a small
|
|
506
|
+
YAML file naming who they are and which part of the board they are offered:
|
|
507
|
+
|
|
508
|
+
```yaml
|
|
509
|
+
user: Alice Smith
|
|
510
|
+
scope:
|
|
511
|
+
under: [LP-2]
|
|
512
|
+
types: [user_story, bug]
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
`lpm profile <file>` for a person, `lpm mcp --profile <file>` for an agent. Scope
|
|
516
|
+
narrows what is *offered*, never what is *reachable* — it is routing, not access
|
|
517
|
+
control. The full reference is `docs/profiles.md`. Use it to keep a working agent
|
|
518
|
+
inside one epic; do not use it to hide anything.
|
|
519
|
+
|
|
520
|
+
## Working sequence, condensed
|
|
521
|
+
|
|
522
|
+
1. `board_overview` — types, hierarchy, statuses, the ranking attributes.
|
|
523
|
+
2. `flagged_issues` — anyone stopped? Answer them first; that is capacity sitting
|
|
524
|
+
idle, and it costs more than anything you are about to write.
|
|
525
|
+
3. `list_documents` — what already exists; do not duplicate it.
|
|
526
|
+
4. Shape it top-down: the container, then the leaves that carry the work.
|
|
527
|
+
5. Write each leaf to the bar: context, requirements, definition of done, out of
|
|
528
|
+
scope. Set priority and effort, and point it at the files it is about.
|
|
529
|
+
6. Sequence with `link_issues` — real gates only. Keep the graph wide.
|
|
530
|
+
7. Assign: pools by default, people where it matters. Schedule into periods.
|
|
531
|
+
8. `check_board`, `team_load`, and `next_tasks` for each person, to prove it routes.
|
|
532
|
+
9. Report the plan by what it enables tomorrow, not by how many documents it has.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Claude Code — where it keeps agents, skills and MCP servers.
|
|
2
|
+
#
|
|
3
|
+
# Source: https://code.claude.com/docs/en/claude-directory
|
|
4
|
+
# See docs/harness-layouts.md for the schema and for what each field means.
|
|
5
|
+
|
|
6
|
+
name: claude
|
|
7
|
+
label: Claude Code
|
|
8
|
+
docs: https://code.claude.com/docs/en/claude-directory
|
|
9
|
+
verified: 2026-08-03
|
|
10
|
+
aliases: [claude-code, cc]
|
|
11
|
+
|
|
12
|
+
roots:
|
|
13
|
+
project: "{project}/.claude"
|
|
14
|
+
user: "{home}/.claude"
|
|
15
|
+
|
|
16
|
+
files:
|
|
17
|
+
# Subagents: one markdown file each, running in their own context window.
|
|
18
|
+
# `tools:` is a comma-separated string here, not a list.
|
|
19
|
+
- from: agents/*.md
|
|
20
|
+
to: "{root}/agents/{basename}"
|
|
21
|
+
frontmatter:
|
|
22
|
+
name: "{name}"
|
|
23
|
+
description: "{description}"
|
|
24
|
+
tools: "{tools|join}"
|
|
25
|
+
|
|
26
|
+
# Skills: a folder with a SKILL.md, so supporting files can be bundled beside
|
|
27
|
+
# the prompt.
|
|
28
|
+
- from: skills/*.md
|
|
29
|
+
to: "{root}/skills/{name}/SKILL.md"
|
|
30
|
+
frontmatter:
|
|
31
|
+
name: "{name}"
|
|
32
|
+
description: "{description}"
|
|
33
|
+
|
|
34
|
+
mcp:
|
|
35
|
+
# Project servers live at the project root, NOT inside .claude/.
|
|
36
|
+
project:
|
|
37
|
+
file: "{project}/.mcp.json"
|
|
38
|
+
key: mcpServers
|
|
39
|
+
# Personal servers go in ~/.claude.json, which also holds session state —
|
|
40
|
+
# merge into it, never rewrite it.
|
|
41
|
+
user:
|
|
42
|
+
file: "{home}/.claude.json"
|
|
43
|
+
key: mcpServers
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# GitHub Copilot — where it keeps agents, skills and MCP servers.
|
|
2
|
+
#
|
|
3
|
+
# Source: https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
|
|
4
|
+
# https://awesome-copilot.github.com/learning-hub/copilot-configuration-basics/
|
|
5
|
+
# See docs/harness-layouts.md for the schema and for what each field means.
|
|
6
|
+
|
|
7
|
+
name: copilot
|
|
8
|
+
label: GitHub Copilot
|
|
9
|
+
docs: https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
|
|
10
|
+
verified: 2026-08-03
|
|
11
|
+
aliases: [github-copilot, github, gh]
|
|
12
|
+
|
|
13
|
+
roots:
|
|
14
|
+
project: "{project}/.github"
|
|
15
|
+
user:
|
|
16
|
+
# Copilot CLI's config directory, which COPILOT_HOME may move.
|
|
17
|
+
env: COPILOT_HOME
|
|
18
|
+
default: "{home}/.copilot"
|
|
19
|
+
|
|
20
|
+
files:
|
|
21
|
+
- from: agents/*.md
|
|
22
|
+
to: "{root}/agents/{name}.agent.md"
|
|
23
|
+
frontmatter:
|
|
24
|
+
name: "{name}"
|
|
25
|
+
description: "{description}"
|
|
26
|
+
# `tools` is deliberately not emitted. Copilot's tool vocabulary is its
|
|
27
|
+
# own, and our assets carry Claude's names: an agent naming tools that do
|
|
28
|
+
# not exist is worse off than one with the default set.
|
|
29
|
+
|
|
30
|
+
# The same shape as Claude's: a folder with a SKILL.md.
|
|
31
|
+
- from: skills/*.md
|
|
32
|
+
to: "{root}/skills/{name}/SKILL.md"
|
|
33
|
+
frontmatter:
|
|
34
|
+
name: "{name}"
|
|
35
|
+
description: "{description}"
|
|
36
|
+
|
|
37
|
+
mcp:
|
|
38
|
+
project:
|
|
39
|
+
file: "{project}/.mcp.json"
|
|
40
|
+
key: mcpServers
|
|
41
|
+
user:
|
|
42
|
+
file: "{root}/mcp-config.json"
|
|
43
|
+
key: mcpServers
|
|
44
|
+
|
|
45
|
+
# The repo-wide instructions file, which is somebody else's document — we append
|
|
46
|
+
# a delimited block to it rather than writing it.
|
|
47
|
+
pointer:
|
|
48
|
+
project: "{root}/copilot-instructions.md"
|
|
49
|
+
user: "{root}/copilot-instructions.md"
|
|
50
|
+
|
|
51
|
+
note: >-
|
|
52
|
+
VS Code reads MCP servers from .vscode/mcp.json under a `servers` key rather
|
|
53
|
+
than from .mcp.json. If Copilot Chat in VS Code is your only surface, copy the
|
|
54
|
+
entry across.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Reasonix (DeepSeek) — where it keeps agents, skills and MCP servers.
|
|
2
|
+
#
|
|
3
|
+
# Source: https://github.com/esengine/DeepSeek-Reasonix/blob/main-v2/docs/GUIDE.md
|
|
4
|
+
# See docs/harness-layouts.md for the schema and for what each field means.
|
|
5
|
+
#
|
|
6
|
+
# Reasonix is the odd one out twice over: one directory holds both agents and
|
|
7
|
+
# skills, and the user-level config is TOML.
|
|
8
|
+
|
|
9
|
+
name: reasonix
|
|
10
|
+
label: Reasonix (DeepSeek)
|
|
11
|
+
docs: https://github.com/esengine/DeepSeek-Reasonix/blob/main-v2/docs/GUIDE.md
|
|
12
|
+
verified: 2026-08-03
|
|
13
|
+
aliases: [deepseek]
|
|
14
|
+
|
|
15
|
+
roots:
|
|
16
|
+
project: "{project}/.reasonix"
|
|
17
|
+
user: "{home}/.reasonix"
|
|
18
|
+
|
|
19
|
+
files:
|
|
20
|
+
# Every file under commands/ is a /slash-command; `runAs: subagent` is the
|
|
21
|
+
# only thing that makes one a subagent profile.
|
|
22
|
+
- from: agents/*.md
|
|
23
|
+
to: "{root}/commands/{basename}"
|
|
24
|
+
frontmatter:
|
|
25
|
+
description: "{description}"
|
|
26
|
+
runAs: subagent
|
|
27
|
+
|
|
28
|
+
# Same directory, no marker: a skill is just a command.
|
|
29
|
+
- from: skills/*.md
|
|
30
|
+
to: "{root}/commands/{basename}"
|
|
31
|
+
frontmatter:
|
|
32
|
+
description: "{description}"
|
|
33
|
+
|
|
34
|
+
mcp:
|
|
35
|
+
# Project .mcp.json in the standard format wins over both TOML sources, and is
|
|
36
|
+
# the same file Claude and Copilot read.
|
|
37
|
+
project:
|
|
38
|
+
file: "{project}/.mcp.json"
|
|
39
|
+
key: mcpServers
|
|
40
|
+
user:
|
|
41
|
+
# ~/.reasonix/config.toml is TOML and this package has no TOML support.
|
|
42
|
+
# Merging into somebody's config file blind is how you lose it, so we print
|
|
43
|
+
# the entry instead of writing it.
|
|
44
|
+
advice: |
|
|
45
|
+
Add the server to ~/.reasonix/config.toml as a [[plugins]] entry:
|
|
46
|
+
[[plugins]]
|
|
47
|
+
name = "light-plan"
|
|
48
|
+
command = "lpm"
|
|
49
|
+
args = ["mcp"]
|