@boopkit/cli 0.6.12 → 0.6.14

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.
Files changed (43) hide show
  1. package/README.md +27 -6
  2. package/dist/capability-versions.json +16 -16
  3. package/dist/cli.js +9 -1
  4. package/dist/commands/add.js +49 -2
  5. package/dist/commands/init.d.ts +17 -1
  6. package/dist/commands/init.js +151 -26
  7. package/dist/commands/loop-merge.d.ts +1 -0
  8. package/dist/commands/loop-merge.js +4 -2
  9. package/dist/commands/loop.d.ts +21 -2
  10. package/dist/commands/loop.js +105 -16
  11. package/dist/commands/loop.js.orig-pre-maxbuffer +1455 -0
  12. package/dist/commands/migrate-skill-edits.d.ts +24 -0
  13. package/dist/commands/migrate-skill-edits.js +190 -0
  14. package/dist/commands/status.d.ts +8 -0
  15. package/dist/commands/status.js +13 -0
  16. package/dist/commands/update.js +55 -7
  17. package/dist/lib/apply-skill-edits.d.ts +76 -0
  18. package/dist/lib/apply-skill-edits.js +307 -0
  19. package/dist/lib/execute.js +1 -0
  20. package/dist/lib/original-text.d.ts +43 -0
  21. package/dist/lib/original-text.js +165 -0
  22. package/dist/lib/scaffold.d.ts +41 -7
  23. package/dist/lib/scaffold.js +96 -15
  24. package/dist/lib/skill-edits.d.ts +88 -0
  25. package/dist/lib/skill-edits.js +293 -0
  26. package/dist/lib/update.d.ts +38 -2
  27. package/dist/lib/update.js +149 -6
  28. package/docs/init.md +132 -86
  29. package/docs/loop.md +16 -0
  30. package/docs/skills.md +1 -0
  31. package/package.json +3 -2
  32. package/profiles/base/profile.md +105 -0
  33. package/profiles/base/templates/.github/copilot-instructions.md +3 -0
  34. package/profiles/base/templates/.gitignore.hbs +6 -0
  35. package/profiles/base/templates/AGENTS.md.hbs +50 -0
  36. package/profiles/base/templates/CLAUDE.md.hbs +3 -0
  37. package/profiles/base/templates/README.md.hbs +15 -0
  38. package/profiles/base/templates/docs/README.md +12 -0
  39. package/profiles/base/templates/package.json.hbs +7 -0
  40. package/profiles/base/templates/reference/README.md +16 -0
  41. package/profiles/base/templates/specs/README.md +12 -0
  42. package/profiles/development/profile.md +8 -1
  43. package/src/templates/skill-project/PROJECT.md +28 -0
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: base
3
+ description: Planning, writing and issue tracking for a project that isn't an application
4
+ defaultCapabilities:
5
+ - project-mgmt
6
+ - product-design
7
+ - skills
8
+ ---
9
+
10
+ # Base Profile
11
+
12
+ The part of boop that was never about web apps:
13
+ the folder conventions, the agent instructions, the issue tracker,
14
+ and the planning and writing skills.
15
+
16
+ Some projects produce decisions, documents and tracked work rather than code.
17
+ Setting up an AWS environment is one; a research project or a migration plan is another.
18
+ They still need somewhere to write down what is intended,
19
+ somewhere to record what now exists,
20
+ and a list of what comes next.
21
+ This profile gives them that and nothing else.
22
+
23
+ It is not a web app with the app removed.
24
+ A project made from it should read as a place to think and to track work,
25
+ with `specs/` for what we intend, `reference/` for what exists, and issues for what comes next.
26
+ Nothing in it assumes there is code to build, test or deploy,
27
+ and if a file only makes sense for an application, it does not belong here.
28
+
29
+ ## What You Get
30
+
31
+ Three capabilities, all of them `type: development`,
32
+ whose skills apply to work that isn't code without any edits:
33
+
34
+ - **project-mgmt** — beads issue tracking and planning skills
35
+ - **product-design** — requirements, design, documentation and writing skills
36
+ - **skills** — skill authoring, discovery and maintenance
37
+
38
+ The profile also ships its own `templates/` folder,
39
+ which `boop init` renders in place of the web-app kernel templates:
40
+ an `AGENTS.md` that describes a project whose output is documents and tracked work,
41
+ a `README.md`, a `CLAUDE.md` pointer, a `.github/copilot-instructions.md` pointer, a `.gitignore`,
42
+ a README in each of `specs/`, `reference/` and `docs/` saying what belongs there,
43
+ and a minimal `package.json`.
44
+ Because `project-mgmt` is installed, `boop init` then commits the scaffold
45
+ and sets up the project's beads issue tracker in Dolt server mode,
46
+ so work can be filed as issues from the first minute.
47
+
48
+ The `package.json` has no scripts or dependencies of its own.
49
+ It exists because it is how boop delivers capability skills and refreshes them:
50
+ without one, the capability packages would never be recorded
51
+ and `boop update` would have nothing to update.
52
+
53
+ ## Three Deliberate Omissions
54
+
55
+ The development capabilities that every other profile carries —
56
+ `coding`, `testing` and `workflows` —
57
+ are left out on purpose.
58
+ An agent takes the skills and files in a project as a hint about what kind of work happens there,
59
+ so every code-shaped thing in the scaffold is an invitation to do code-shaped work.
60
+
61
+ ### No testing
62
+
63
+ `testing` installs Jest, `ts-jest`, a `tsconfig.test.json` and a `tests/` folder.
64
+ A project with nothing to test would carry a test runner nobody runs,
65
+ and an agent that finds one will reasonably suggest writing tests for it.
66
+
67
+ ### No workflows
68
+
69
+ Seven of the ten `workflows` skills are for code:
70
+ feature development, refactoring, test audits, website work and so on.
71
+ An agent asked to "set up the network" could reasonably pick one of them up
72
+ and start a feature branch for something that has no code in it.
73
+ The three that suit any project — issue sweeps, knowledge backfill and stray disposition —
74
+ can join this profile once `workflows` is split (tracked in `boop-4n87`).
75
+
76
+ ### No coding
77
+
78
+ `coding` is mostly about application code:
79
+ development conventions, code style, debugging.
80
+ When a project grows code of its own, such as Terraform for an infrastructure project,
81
+ `boop add coding` brings those skills in.
82
+ Leaving the capability out costs nothing until then.
83
+
84
+ ## No Kernel, and Templates Instead
85
+
86
+ ### No kernel
87
+
88
+ `web-app` carries a `kernel` block:
89
+ a node runtime, a deploy target, a port, an Express dependency set and the scripts that start a server.
90
+ This profile scaffolds no application, so it has none of those to name.
91
+
92
+ Unlike `development`, which has no kernel either and is refused by `boop init`,
93
+ this profile ships `templates/`,
94
+ and a profile with templates is one `boop init` can scaffold.
95
+ The steps that only mean something for an application —
96
+ the Node version check, merging kernel dependencies
97
+ and the `npm run dev` next step —
98
+ are skipped.
99
+
100
+ ### No reference/
101
+
102
+ The folder READMEs live under `templates/`, not in a `profiles/base/reference/` folder.
103
+ Boop mirrors every profile's `reference/` pages into its own `reference/` folder as symlinks,
104
+ so a README placed there would land in boop's own tree
105
+ rather than in the projects made from this profile.
@@ -0,0 +1,3 @@
1
+ Read the [AGENTS.md](../AGENTS.md) file and follow those instructions.
2
+
3
+ Before starting work, run `boop status` to see what capabilities are configured and what needs setup.
@@ -0,0 +1,6 @@
1
+ node_modules/
2
+ .env
3
+ *.log
4
+ .DS_Store
5
+ .boop/*
6
+ !.boop/config.json
@@ -0,0 +1,50 @@
1
+ # {{projectName}}
2
+
3
+ This is a **boop**-managed project. Use boop commands — don't reinvent what boop already provides.
4
+
5
+ ## Conversational style
6
+ When the user asks a question, it is for informational purpose and not a veiled request for action. Unless the user says a colloquially phrased command like "can you write a test for X" or "can you add a database", you should not take any action. If the user wants you to do something, they will ask you to do it directly.
7
+
8
+ Don't confirm a hypothesis (or take action) without observation - logs, tests, and other data are your friends. If you don't have the information you need to answer a question, find it (eg. run db queries, look at logs, add more logging, etc.) or ask for it instead of guessing.
9
+
10
+ ## What this project is for
11
+
12
+ This project produces decisions, documents and tracked work rather than an application.
13
+ There is no code to build, test or deploy,
14
+ so don't set up a test suite, a build step or a feature branch unless you are asked to.
15
+
16
+ ## How to work in this project
17
+
18
+ 1. **Prefer project skills over general knowledge.**
19
+ When a skill matches your task — writing a spec, planning work, filing issues, documenting something, writing a proposal — follow its `SKILL.md` instead of working from memory.
20
+ Skills live in `skills/` (each is a folder with a `SKILL.md`) and are also exposed at `.claude/skills/` for tooling that auto-discovers there.
21
+ If your tooling does not auto-surface skills, list `skills/` and read each `SKILL.md`'s frontmatter (`name`, `description`) to find a match.
22
+ 2. **Track work in beads.**
23
+ Every piece of work that outlives the current conversation is an issue in `bd`, not a markdown to-do list.
24
+ Run `bd ready` to see what is unblocked, and `bd create` to file something new.
25
+ 3. **Check project status.**
26
+ Run `boop status` to see which capabilities are installed and whether anything needs attention.
27
+ 4. **Use boop for capabilities.**
28
+ Run `boop caps` to see what is available.
29
+ If the project grows code of its own — infrastructure as code, a script worth keeping — run `boop add <capability>` (for example `boop add coding`) rather than installing and wiring things by hand.
30
+ 5. **Run `boop --help`** for the full command list.
31
+
32
+ ## Project layout
33
+ - `specs/` — what we intend: proposals, designs and plans ("future state")
34
+ - `reference/` — what exists now, kept true as things are finished or change ("current state")
35
+ - `docs/` — guides for the people who use what this project produces
36
+ - `skills/` — process skills for agents (each skill is a folder with a `SKILL.md`); also linked from `.claude/skills/` for Claude Code's built-in skill discovery
37
+ - `.beads/` — the issue tracker's database (managed by `bd`)
38
+ - `.boop/` — project manifest (managed by boop)
39
+
40
+ ## The working cycle
41
+
42
+ 1. **A spec describes the intent.**
43
+ Before a significant piece of work starts, write down in `specs/` what is wanted and why.
44
+ 2. **Issues carry the work.**
45
+ Once the spec is agreed, break it into issues in beads, one per step someone can pick up and finish.
46
+ 3. **`reference/` records the result.**
47
+ When a step is finished, or something that already exists changes, update `reference/` so it describes what is true now.
48
+
49
+ Specs stay as the record of what was intended.
50
+ `reference/` is what a newcomer reads to learn how things actually are, so it has to be kept current.
@@ -0,0 +1,3 @@
1
+ # {{projectName}}
2
+
3
+ Read [AGENTS.md](AGENTS.md) and follow all instructions there.
@@ -0,0 +1,15 @@
1
+ # {{projectName}}
2
+
3
+ A project scaffolded with [boop](https://github.com/boop),
4
+ for planning, writing and tracking work rather than building an application.
5
+
6
+ ## How it is organized
7
+
8
+ - `specs/` — what we intend: proposals, designs and plans
9
+ - `reference/` — what exists now, kept true as things change
10
+ - `docs/` — guides for the people who use what this project produces
11
+ - `skills/` — the process skills agents follow when working here
12
+ - `.beads/` — the issue tracker; run `bd ready` to see what is next
13
+
14
+ `AGENTS.md` explains how an agent should work in this project,
15
+ and `boop status` shows which capabilities are installed.
@@ -0,0 +1,12 @@
1
+ # Docs
2
+
3
+ Guides for the people who **use** what this project produces.
4
+ Where `reference/` explains how things are set up for the people who maintain them, `docs/` explains how to use them.
5
+
6
+ ## What belongs here
7
+
8
+ - How-to guides for a task someone will come here to do, written from their side
9
+ - Getting-started pages for someone meeting the result for the first time
10
+ - Answers to the questions people keep asking
11
+
12
+ Write for a reader who was not involved in the work and only needs to use its result.
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "{{projectName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {},
6
+ "devDependencies": {}
7
+ }
@@ -0,0 +1,16 @@
1
+ # Reference
2
+
3
+ Documents that describe **what exists now** — the current state of whatever this project has set up, decided or produced.
4
+ Where `specs/` records what we intend, `reference/` records what is actually true.
5
+
6
+ ## What belongs here
7
+
8
+ - A description of each thing that exists: what it is, where it lives, how it is configured, and why it is that way
9
+ - Decisions that are in force, with enough of the reasoning that someone can tell when a decision no longer applies
10
+ - Conventions this project follows, so a newcomer can work the same way
11
+
12
+ ## Keeping it true
13
+
14
+ A reference page is only useful while it matches reality.
15
+ When a piece of work is finished, or something that already exists changes, update the page that describes it as part of the same piece of work.
16
+ If a page no longer describes anything real, delete it rather than leaving it to mislead.
@@ -0,0 +1,12 @@
1
+ # Specs
2
+
3
+ Design documents and specifications for planned features and changes. Specs describe the **future state** — what we intend to build — in contrast to `reference/` which documents the **current state**.
4
+
5
+ ## Workflow
6
+
7
+ 1. Write a spec for a new feature or significant change
8
+ 2. Review and approve the spec
9
+ 3. Create implementation tasks (in beads) from the approved spec
10
+ 4. After shipping, update `reference/` docs to reflect the new reality
11
+
12
+ Specs remain as a record of design intent even after implementation.
@@ -61,7 +61,14 @@ and it would make `boop init --profile development`
61
61
  emit an Express `src/app.ts` that imports a dependency the profile never installs.
62
62
 
63
63
  So `kernel` is absent, and `ProfileMetadata.kernel` is optional to allow it.
64
- The consequence is deliberate: `boop init --profile development` is refused
64
+
65
+ Having no kernel does not on its own stop `boop init`.
66
+ A profile that ships a `templates/` folder of its own, as `base` does,
67
+ is scaffolded from those templates instead.
68
+ This profile ships none, because it describes how a project is developed,
69
+ not what files the project starts with.
70
+ With neither a kernel nor templates there is nothing to write,
71
+ and the consequence is deliberate: `boop init --profile development` is refused
65
72
  with a message pointing at the two ways this profile is actually meant to be used —
66
73
  name it in an existing project's `.boop/config.json`,
67
74
  or `boop add` these capabilities one at a time.
@@ -0,0 +1,28 @@
1
+ # How this project applies this skill
2
+
3
+ This file belongs to the project.
4
+ `SKILL.md`, beside it, belongs to boop and is replaced on every `boop update`, so a rule written there is lost.
5
+ boop created this file and never tracks, updates or overwrites it, so write this project's rules here.
6
+ Where this file and `SKILL.md` conflict, this file wins.
7
+
8
+ Put each rule under the heading that describes it.
9
+ To decide between this file and `SKILL.md`, ask whether the rule would still be true in a brand-new boop project scaffolded tomorrow.
10
+ If it would not, it belongs here.
11
+ If it would, it belongs under "Offered to boop".
12
+
13
+ ## Adds
14
+
15
+ Rules this project follows that the skill's guidance does not cover.
16
+
17
+ ## Narrows
18
+
19
+ Where the skill offers a choice, the one this project always makes.
20
+
21
+ ## Overrides
22
+
23
+ Where this project deliberately contradicts the skill's guidance, and why.
24
+
25
+ ## Offered to boop
26
+
27
+ Rules that apply here and that this project thinks boop should adopt for every project.
28
+ They stay in effect here until boop ships them.