@klok-integration/cli 0.7.248 → 0.7.269

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.
@@ -30,10 +30,14 @@ shared platform service) in `klok/integration-solutions`.
30
30
  issue, never to ignore.
31
31
  3. **Read the design.** The solution document and any design page next to it, then each project's `klok-docs/`
32
32
  (`klok docs read <doc-id>`, `klok docs id <repo path>` gives the id).
33
- 4. **A new solution gets an id and a document before code.** Take the id from the code, not the next free
34
- number: grep the integration repositories, pushed branches included, and run `klok solutions validate`. Write
35
- `README.md`, `solution.meta.json` (`generatedBy: "manual"`) and, when the details do not fit, a design page next
36
- to it, in a worktree of the registry. The sections are listed in the registry README.
33
+ 4. **A new solution gets an id and a document before code.** The merge request that adds the solution's folder to
34
+ the registry is the allocation: `klok solutions new "<name>" --dry-run`, then without `--dry-run`, opens it from a
35
+ worktree of the registry with the next free number (`klok solutions next` says why that one: the registry, its
36
+ history and open merge requests, and the route classes on every branch). Never choose another number, and never
37
+ reuse one, not even a removed solution's. The folder starts `"status": "reserved"`; write `README.md`, the
38
+ describing fields of `solution.meta.json` and, when the details do not fit, a design page next to it, and set the
39
+ status to `active`. The sections are listed in the registry README. `klok solutions validate --base origin/main`
40
+ checks the change against the registry's history and its open merge requests.
37
41
  5. **Reuse before building.** Look for an existing solution or platform capability first: tasks and the task API
38
42
  (KLK002), the ODL, the AI services (KLK003), mail (KLK006), the claim check, datamodels in the catalog. A
39
43
  capability that needs a change to serve the solution is *reused, slight change*, with its own merge request in
@@ -81,6 +85,9 @@ shared platform service) in `klok/integration-solutions`.
81
85
  ## Things that are always wrong
82
86
 
83
87
  * Code for a new solution before its document exists, or a route id whose prefix is not a registered solution.
88
+ * A solution number that is not the next free one (`klok solutions next`), or one used before.
89
+ * Deleting a solution's folder in a merge request: a solution that stops running gets `"status": "retired"`; only a
90
+ platform admin removes one, on `main`, and its number stays spent.
84
91
  * A leg in code that its solution document does not name, or a document that names a leg as built that is not.
85
92
  * Reusing a leg and sequence (`KLK002A11`) for a second route.
86
93
  * Integration logic in a Python or TypeScript client, or in an external engine, without a `[TACTICAL]` entry.
@@ -36,7 +36,9 @@ basename, never put the worktree inside `.claude`, inside the canonical checkout
36
36
  you. Keep the existing project rules; this skill does not replace them.
37
37
  3. **Inspect, do not touch.** `git -C <canonical> status --short`, `git -C <canonical> worktree list --porcelain`
38
38
  and the canonical branch. Never `stash`, `reset`, `clean`, `checkout` or `switch` there; the only update of a
39
- canonical checkout is `klok sync pull`, which fast-forwards it or reports why it cannot. Uncommitted changes in
39
+ canonical checkout is `klok sync pull`, which fast-forwards it or reports why it cannot. When it reports that the
40
+ checkout's GitLab project moved, the move and the `git worktree repair` it lists are the person's: hand them over,
41
+ and base the worktree on the project at its new path. Uncommitted changes in
40
42
  the canonical checkout are not a blocker; the worktree starts from committed history. If the task depends on
41
43
  those changes, say so and ask for a handoff instead of moving them.
42
44
  4. **Choose the base.** Fetch the remote and resolve its default branch from the remote HEAD