@felixdotgo/aidlc-kit 0.1.0 → 0.1.1

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 (65) hide show
  1. package/README.md +16 -6
  2. package/dist/assets/.agents/aidlc/schemas/manifest.schema.json +1 -1
  3. package/dist/assets/.agents/aidlc/scripts/lib/context-runtime.mjs +5 -0
  4. package/dist/assets/.agents/aidlc/scripts/lib/loop-drivers.mjs +6 -1
  5. package/dist/assets/.agents/aidlc/scripts/lib/loop-fleet.mjs +6 -0
  6. package/dist/assets/.agents/aidlc/scripts/lib/loop-git.mjs +8 -3
  7. package/dist/assets/.agents/aidlc/scripts/lib/loop-local-workers.mjs +1 -0
  8. package/dist/assets/.agents/aidlc/scripts/lib/loop-runtime.mjs +7 -1
  9. package/dist/assets/.agents/aidlc/scripts/lib/loop-worker-snapshot.mjs +3 -2
  10. package/dist/assets/.agents/aidlc/scripts/lib/store.mjs +2 -2
  11. package/dist/assets/.agents/aidlc/scripts/remote-state.mjs +2 -0
  12. package/dist/assets/.agents/aidlc/scripts/state.mjs +4 -0
  13. package/dist/services/aidlc-coordination/src/lifecycle-core.mjs +2 -2
  14. package/dist/src/adapters.js +8 -1
  15. package/dist/src/cli.js +111 -95
  16. package/dist/src/context.js +2 -0
  17. package/dist/src/gate.d.ts +1 -0
  18. package/dist/src/gate.js +48 -35
  19. package/dist/src/installer.d.ts +5 -0
  20. package/dist/src/installer.js +116 -80
  21. package/dist/src/model.d.ts +1 -1
  22. package/dist/src/profiles.d.ts +6 -0
  23. package/dist/src/profiles.js +11 -0
  24. package/dist/src/project-migration.d.ts +1 -0
  25. package/dist/src/project-migration.js +7 -0
  26. package/dist/src/state/archive.d.ts +17 -0
  27. package/dist/src/state/archive.js +60 -0
  28. package/dist/src/state/items.d.ts +25 -0
  29. package/dist/src/state/items.js +146 -0
  30. package/dist/src/state/lessons.d.ts +7 -0
  31. package/dist/src/state/lessons.js +67 -0
  32. package/dist/src/state/lifecycle.d.ts +5 -0
  33. package/dist/src/state/lifecycle.js +78 -0
  34. package/dist/src/state/lock.d.ts +7 -0
  35. package/dist/src/state/lock.js +124 -0
  36. package/dist/src/state/memory.d.ts +8 -0
  37. package/dist/src/state/memory.js +88 -0
  38. package/dist/src/state/render.d.ts +26 -0
  39. package/dist/src/state/render.js +29 -0
  40. package/dist/src/state/shared.d.ts +29 -0
  41. package/dist/src/state/shared.js +71 -0
  42. package/dist/src/state/store.d.ts +4 -0
  43. package/dist/src/state/store.js +81 -0
  44. package/dist/src/state/transitions.d.ts +21 -0
  45. package/dist/src/state/transitions.js +93 -0
  46. package/dist/src/state/validate.d.ts +4 -0
  47. package/dist/src/state/validate.js +100 -0
  48. package/dist/src/state.d.ts +15 -117
  49. package/dist/src/state.js +15 -815
  50. package/dist/src/tracker.d.ts +7 -0
  51. package/dist/src/tracker.js +3 -0
  52. package/dist/src/upgrade-board.d.ts +5 -0
  53. package/dist/src/upgrade-board.js +89 -0
  54. package/dist/src/upgrade.d.ts +4 -5
  55. package/dist/src/upgrade.js +197 -214
  56. package/dist/src/workflow.js +1 -1
  57. package/docs/README.md +2 -2
  58. package/docs/architecture.md +4 -1
  59. package/docs/command-reference.md +15 -12
  60. package/docs/configuration.md +7 -4
  61. package/docs/coordination-service.md +5 -2
  62. package/docs/development.md +15 -1
  63. package/docs/operating-workflow.md +4 -1
  64. package/docs/testing-and-release.md +7 -7
  65. package/package.json +2 -2
@@ -30,7 +30,7 @@ export const manifestFor = (files, adapters) => ({
30
30
  workflow: "AI-DLC",
31
31
  source: "local-package-assets",
32
32
  remoteUpdates: false,
33
- managedBy: "aidlc-workflow",
33
+ managedBy: "aidlc-kit",
34
34
  adapters,
35
35
  files: Object.fromEntries(files.filter((file) => file.ownershipClass === "managed" || !file.ownershipClass).map((file) => [manifestKey(file), {
36
36
  hash: contentHash(file.strategy === "managed-block" ? file.content.trimEnd() : file.content),
package/docs/README.md CHANGED
@@ -8,7 +8,7 @@ Use this page to choose the guide that matches your role and next task.
8
8
  2. Read [Operating the workflow](./operating-workflow.md) before asking an agent to change a project.
9
9
  3. Use [Configuration](./configuration.md) to configure project rules, profiles, and Codex, Claude Code, and OpenCode permissions.
10
10
  4. Keep [Command reference](./command-reference.md) nearby for safe CLI usage.
11
- 5. Read [AI-DLC Coordination service](./coordination-service.md) before enabling remote canonical state.
11
+ 5. Read [AI-DLC Coordination service](./coordination-service.md) before enabling remote canonical state — the service and the loop are **experimental and unfinished**, with known bugs and possible breaking changes in every release before `1.0.0`.
12
12
 
13
13
  ## For contributors and maintainers
14
14
 
@@ -26,6 +26,6 @@ Use this page to choose the guide that matches your role and next task.
26
26
  | [Development](./development.md) | Contributors | Dependencies, source layout, local commands, and implementation rules. |
27
27
  | [Testing and release](./testing-and-release.md) | Maintainers | Test strategy, evaluator, package smoke test, and release checks. |
28
28
  | [Architecture](./architecture.md) | Contributors | Boundaries, dependency direction, and source-to-consumer flow. |
29
- | [AI-DLC Coordination service](./coordination-service.md) | Operators | Opt-in service deployment, state authority, and credential safety. |
29
+ | [AI-DLC Coordination service](./coordination-service.md) | Operators | Opt-in service deployment, state authority, and credential safety. Experimental and unfinished: known bugs, breaking changes possible before `1.0.0`. |
30
30
 
31
31
  When a public command, configuration field, or installed layout changes, update the relevant guide and its validation in the same change.
@@ -45,7 +45,10 @@ The installed kernel consists of contracts, templates, schemas, profiles, and de
45
45
  | `.agents/data/` | Project owned | Canonical state, task artifacts, derived indexes, memory, and evidence. |
46
46
  | `.agents/project/` | Project owned | Local profiles, rules, and evaluation material. |
47
47
 
48
- The state machine enforces the lifecycle; gates require explicit human approval; evidence is append-only. Installed scripts remain usable without an `aidlc-workflow` executable or a duplicate board file.
48
+ The state machine enforces the lifecycle; gates require explicit human approval; evidence is append-only. Installed scripts remain usable without an `aidlc-kit` executable or a duplicate board file.
49
+
50
+ > [!WARNING]
51
+ > The interactive-loop support and the end-to-end loop/fleet coordinator described below are **experimental and unfinished**: they contain known bugs and rough edges, and — because the package is still pre-1.0 (`0.x`) — their command surface, configuration fields, and state layout can change incompatibly in any release before `1.0.0`.
49
52
 
50
53
  The interactive loop runs inside the current Codex, Claude Code, or OpenCode conversation. Native workers use local assignment records under `.agents/data/loop/`; those records hold claims and checkpoints while `.agents/data/state/` remains lifecycle authority. The optional headless fleet runner uses the coordination service's PostgreSQL state, fenced lead and worker claims, and Git commit handoff. Its assignment records are operational metadata; task phase, evidence, and gates stay in the canonical lifecycle state. All hosts derive dispatch from task `nextAction` and dependency-ready work.
51
54
 
@@ -1,23 +1,23 @@
1
1
  # Command reference
2
2
 
3
- All package commands operate on local files. The examples run version `0.0.1` through npm; `npx` may ask permission to fetch that package on first use. Replace `.` with the target project path when needed. For a source checkout, see the [development guide](./development.md).
3
+ All package commands operate on local files. The examples run version `0.1.1` through npm; `npx` may ask permission to fetch that package on first use. Replace `.` with the target project path when needed. For a source checkout, see the [development guide](./development.md).
4
4
 
5
5
  ## `init`
6
6
 
7
7
  ```sh
8
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow init [path] [--agent <name[,name]> | --all] [--loop-mode off|local|fleet] [--loop-lead codex|claude|opencode] [--loop-workers <id=provider,...>] [--yes] [--dry-run] [--force]
8
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit init [path] [--agent <name[,name]> | --all] [--loop-mode off|local|fleet] [--loop-lead codex|claude|opencode] [--loop-workers <id=provider,...>] [--yes] [--dry-run] [--force]
9
9
  ```
10
10
 
11
11
  Plans the installation, prints a preview, and then writes the workflow only after confirmation (or `--yes`). `--dry-run` prints the same plan without writing. If exactly one installed agent is detected, it can be selected automatically. In an interactive terminal, choose multiple agents with the checkbox prompt: use arrow keys to move, Space to toggle, A to toggle all, and Enter to confirm. For scripts and non-interactive terminals, use `--agent <name[,name]>` or `--all`.
12
12
 
13
- In interactive setup, choose a loop mode and, when enabled, the lead and worker providers. For non-interactive setup, omit loop options to keep the default off, or specify `--loop-mode local|fleet` together with `--loop-lead` and `--loop-workers` (for example, `--loop-workers a=codex,b=opencode`). The preview includes the project config change. These settings only configure the loop; run `aidlc-workflow loop start` to actually start it.
13
+ In interactive setup, choose a loop mode and, when enabled, the lead and worker providers. For non-interactive setup, omit loop options to keep the default off, or specify `--loop-mode local|fleet` together with `--loop-lead` and `--loop-workers` (for example, `--loop-workers a=codex,b=opencode`). The preview includes the project config change. These settings only configure the loop; run `aidlc-kit loop start` to actually start it. The loop and the coordination service are experimental: their flags and defaults may change incompatibly in any release before `1.0.0`.
14
14
 
15
15
  `--force` is for an intentional initial replacement of an unmanaged conflicting file. It is not an upgrade mechanism. If the project already has another workflow package version, use the human-run upgrade flow instead.
16
16
 
17
17
  ## `status`
18
18
 
19
19
  ```sh
20
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow status [path]
20
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit status [path]
21
21
  ```
22
22
 
23
23
  Reports the installed version and local installation status. It does not query a registry.
@@ -25,7 +25,7 @@ Reports the installed version and local installation status. It does not query a
25
25
  ## `doctor`
26
26
 
27
27
  ```sh
28
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow doctor [path] [--strict]
28
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit doctor [path] [--strict]
29
29
  ```
30
30
 
31
31
  Checks the local manifest, configuration, and canonical state. `--strict` turns compatibility warnings such as a legacy manifest into errors. It does not query a registry.
@@ -33,7 +33,7 @@ Checks the local manifest, configuration, and canonical state. `--strict` turns
33
33
  ## `profile validate`
34
34
 
35
35
  ```sh
36
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow profile validate [path]
36
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit profile validate [path]
37
37
  ```
38
38
 
39
39
  Loads `.agents/config.json`, resolves its profile chain, and prints the effective profile order. Use it after changing `extends` or local profiles.
@@ -41,7 +41,7 @@ Loads `.agents/config.json`, resolves its profile chain, and prints the effectiv
41
41
  ## `uninstall`
42
42
 
43
43
  ```sh
44
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow uninstall [path] [--yes] [--dry-run]
44
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit uninstall [path] [--yes] [--dry-run]
45
45
  ```
46
46
 
47
47
  Prints the removal plan before applying it. It removes eligible unchanged managed assets but preserves project configuration and state. Prefer `--dry-run` first when working in an existing project.
@@ -49,7 +49,7 @@ Prints the removal plan before applying it. It removes eligible unchanged manage
49
49
  ## `mcp setup`
50
50
 
51
51
  ```sh
52
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow mcp setup [path] [--dry-run] [--yes] [--storage sqlite|postgres] [--deployment docker|remote] [--bind localhost|network] [--workspace <id>] [--poll-ms <n>] [--enable]
52
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit mcp setup [path] [--dry-run] [--yes] [--storage sqlite|postgres] [--deployment docker|remote] [--bind localhost|network] [--workspace <id>] [--poll-ms <n>] [--enable]
53
53
  ```
54
54
 
55
55
  Previews the optional AI-DLC Coordination service configuration, then writes only after confirmation. Non-interactive use requires `--deployment`, `--storage`, `--bind`, and `--workspace`. It never starts Docker; `--enable` is explicit and remote mode has no local fallback. See [AI-DLC Coordination service](./coordination-service.md) for deployment and credential requirements.
@@ -57,7 +57,7 @@ Previews the optional AI-DLC Coordination service configuration, then writes onl
57
57
  ## `upgrade`
58
58
 
59
59
  ```sh
60
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow upgrade [path] [--loop-mode off|local|fleet] [--loop-lead codex|claude|opencode] [--loop-workers <id=provider,...>] [--dry-run]
60
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit upgrade [path] [--loop-mode off|local|fleet] [--loop-lead codex|claude|opencode] [--loop-workers <id=provider,...>] [--dry-run]
61
61
  ```
62
62
 
63
63
  Upgrade is deliberately human-only. The command rejects `--yes` and `--force`; applying it requires an interactive terminal and an exact typed confirmation of the package version. Interactive confirmations use the same styled terminal prompt as `init`. Agents must not run, preview, detect, or suggest package upgrades on their own.
@@ -69,9 +69,12 @@ The upgrade plan handles supported legacy `.aidlc/` project data transactionally
69
69
  ## `loop`
70
70
 
71
71
  ```sh
72
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow loop start|status|resume [options]
72
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit loop start|status|resume [options]
73
73
  ```
74
74
 
75
+ > [!WARNING]
76
+ > The loop commands and fleet mode are **experimental and unfinished**: they contain known bugs and rough edges, and — because the package is still pre-1.0 (`0.x`) — their options, environment variables, and diagnostics can change incompatibly in any release before `1.0.0`.
77
+
75
78
  Options: `--task-id <id>` (optional for `start`, which derives one; required for `status`/`resume`), `--root <path>`, and `--mode local|fleet` (defaults to the configured `loop.mode`). `start` reads the requirement from an interactive prompt or stdin — the requirement is never passed as an argument. The command fails closed when the requested mode does not match the configured authority, when another task is actionable, or when a resume record is missing.
76
79
 
77
80
  `status` prints the canonical task, its derived next action, and — in fleet mode — the durable gate checkpoint. `start` and `resume` run the supervisor in the foreground until the next gate, a pause, a blocked state, or completion; the emitted events include each gate view and the waiting state.
@@ -119,7 +122,7 @@ node .agents/aidlc-coordination/src/fleet-run.mjs coordinator <task-id> --once
119
122
  node .agents/aidlc-coordination/src/fleet-run.mjs worker --once
120
123
  ```
121
124
 
122
- `supervisor` claims the task's supervisor lease, runs fenced lead turns through the coordinator, publishes each gate snapshot with its checkpoint in one service transaction, waits for the reviewer approval, and resumes automatically; it returns at a pause, blocked state, or completion, and never approves a gate. `coordinator --once` runs a single unattended pass without the supervisor lease. `worker --once` claims one ready assignment on a worker machine; it requires `AIDLC_WORKER_DOCKER_IMAGE` and that machine's worker credential and fails closed without them. `aidlc-workflow loop start --mode fleet` wraps the same supervisor with requirement intake and preflight.
125
+ `supervisor` claims the task's supervisor lease, runs fenced lead turns through the coordinator, publishes each gate snapshot with its checkpoint in one service transaction, waits for the reviewer approval, and resumes automatically; it returns at a pause, blocked state, or completion, and never approves a gate. `coordinator --once` runs a single unattended pass without the supervisor lease. `worker --once` claims one ready assignment on a worker machine; it requires `AIDLC_WORKER_DOCKER_IMAGE` and that machine's worker credential and fails closed without them. `aidlc-kit loop start --mode fleet` wraps the same supervisor with requirement intake and preflight.
123
126
 
124
127
  Fleet mode uses `remote-state.mjs` instead of local `state.mjs`. Set `AIDLC_FLEET_URL`, `AIDLC_FLEET_WORKSPACE`, and `AIDLC_FLEET_PROJECT_ROOT`; lead mutations additionally require `AIDLC_FLEET_TOKEN` and the current `AIDLC_FLEET_LEAD_EPOCH`. Claim an epoch before creating or changing a task:
125
128
 
@@ -155,7 +158,7 @@ node .agents/aidlc/scripts/state.mjs gate approve <task-id> --gate <gate> --sour
155
158
  node .agents/aidlc/scripts/state.mjs task transition <task-id> --to <phase> --mode audited --reason "<reason>" --source "<source>"
156
159
  ```
157
160
 
158
- Self-transitions are rejected, and `task create` rejects an id that collides case-insensitively with an existing task or archive record. `task create` also fails while another unrelated task is actionable; its `--switch-from <ids>` acknowledgement still requires explicit user direction. `--feature <feature-id>` permits sibling tasks in an existing feature without abandoning them. `feature link` checks membership and task dependencies; `task item ... --depends-on <item-id,...> --owns <path,...>` adds item edges and an optional Git path scope. Fleet dispatch requires a nonempty path scope. Missing and cyclic dependencies fail, and an item or feature task cannot finish before its prerequisites. After reopening the Approve plan step, all non-deferred execution items return to `todo`; prior Review implementation, verification, and review evidence cannot satisfy the new build boundary, and repair-bound counters reset with it.
161
+ Self-transitions are rejected, and `task create` rejects an id that collides case-insensitively with an existing task or archive record. `task create` also fails while another unrelated task is actionable; its `--switch-from <ids>` acknowledgement still requires explicit user direction. `--feature <feature-id>` permits sibling tasks in an existing feature without abandoning them. `feature link` checks membership and task dependencies; `task item ... --depends-on <item-id,...> --owns <path,...>` adds item edges and an optional Git path scope. Fleet dispatch requires a nonempty path scope. Path scopes are normalized (trailing slashes stripped) and may name either a file or a directory; directory scopes cover every file beneath them. Missing and cyclic dependencies fail, and an item or feature task cannot finish before its prerequisites. After reopening the Approve plan step, all non-deferred execution items return to `todo`; prior Review implementation, verification, and review evidence cannot satisfy the new build boundary, and repair-bound counters reset with it.
159
162
 
160
163
  State writes and generated workplans use symlink-checked atomic replacement. State-lock release is owner-token checked and never removes a replacement owner's lock. If a process stops after writing a terminal archive record but before committing the catalog, a retry replaces that orphan only when the persisted catalog still contains the same active task identity and does not reference an archive record; malformed, referenced, or identity-conflicting records fail closed.
161
164
 
@@ -42,10 +42,10 @@ Built-in topology profiles are:
42
42
  Arrays are stable-deduplicated. Command keys are last-wins, so a project can replace a profile command intentionally. Validate the resolved profile chain with:
43
43
 
44
44
  ```sh
45
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow profile validate .
45
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit profile validate .
46
46
  ```
47
47
 
48
- This command uses the npm package at version `0.0.1`. To run from a source checkout instead, see the [development guide](./development.md).
48
+ This command uses the npm package at version `0.1.1`. To run from a source checkout instead, see the [development guide](./development.md).
49
49
 
50
50
  ## Rules, project data, and managed assets
51
51
 
@@ -71,10 +71,13 @@ Set the default risk level deliberately. Planning, migrations, cross-service con
71
71
 
72
72
  ## Optional AI-DLC Coordination
73
73
 
74
- `mcp` is absent (or `{ "enabled": false }`) by default. An enabled configuration requires an HTTP(S) `endpoint` and non-empty `workspace`; it may also name a token environment variable, polling interval from 1,000 to 3,600,000 ms, and the enabled Jira/Trello/GitHub Issues preflight providers. See [AI-DLC Coordination service](./coordination-service.md) for the remote-authority and deployment contract.
74
+ `mcp` is absent (or `{ "enabled": false }`) by default. An enabled configuration requires an HTTP(S) `endpoint` and non-empty `workspace`; it may also name a token environment variable, polling interval from 1,000 to 3,600,000 ms, and the enabled Jira/Trello/GitHub Issues preflight providers. See [AI-DLC Coordination service](./coordination-service.md) for the remote-authority and deployment contract. The coordination service is **experimental and unfinished** (known bugs included), and it can change incompatibly in any release before `1.0.0`.
75
75
 
76
76
  ## Optional loop configuration
77
77
 
78
+ > [!WARNING]
79
+ > The loop and the coordination service are **experimental and unfinished**: they contain known bugs and rough edges, and — because the package is still pre-1.0 (`0.x`) — the `loop.*` fields, provider mappings, and environment variables can change incompatibly in any release before `1.0.0`.
80
+
78
81
  `loop.mode` can be `off`, `local`, or `fleet`; an absent `loop` field means `off`. The optional `loop.agents` maps one lead and named workers to `codex`, `claude`, or `opencode`, independently of `mcp.providers`:
79
82
 
80
83
  ```json
@@ -88,4 +91,4 @@ Set the default risk level deliberately. Planning, migrations, cross-service con
88
91
 
89
92
  When any selected provider is `opencode`, set `AIDLC_OPENCODE_MODEL` to a `provider/model[#variant]` value such as `opencode-go/gpt-6-luna`. The provider turn fails closed without a valid value. Docker-isolated lead turns, local Docker worker batches, and fleet worker containers reject OpenCode with `OpenCode workers require file-based credentials and are not available in isolated containers yet`; they do not fall back to the host.
90
93
 
91
- Configure this field through the init or human-run upgrade preview, or edit the project-owned config deliberately. Provider credentials do not belong in this object. The configuration is an opt-in selection; it does not install or start a service, authorize an upgrade, or grant gate approval. Selecting a mode alone does not start the loop — run `aidlc-workflow loop start` explicitly. Existing fleet operations and storage requirements are documented in [Coordination service](./coordination-service.md).
94
+ Configure this field through the init or human-run upgrade preview, or edit the project-owned config deliberately. Provider credentials do not belong in this object. The configuration is an opt-in selection; it does not install or start a service, authorize an upgrade, or grant gate approval. Selecting a mode alone does not start the loop — run `aidlc-kit loop start` explicitly. Existing fleet operations and storage requirements are documented in [Coordination service](./coordination-service.md).
@@ -1,5 +1,8 @@
1
1
  # AI-DLC Coordination service
2
2
 
3
+ > [!WARNING]
4
+ > The coordination service (and the end-to-end loop that builds on it) is **experimental and unfinished**: it contains known bugs and rough edges. The package is pre-1.0 (`0.x`), so setup flags, `mcp.*`/`loop.*` configuration, endpoints, environment variables, and storage behaviour can change incompatibly in any release before `1.0.0`. Do not treat it as a stable dependency yet.
5
+
3
6
  The optional AI-DLC Coordination service is a separate Docker-deployable authority for a workflow workspace. It is disabled by default: without an enabled `mcp` block, installed lifecycle scripts remain local and make no network calls.
4
7
 
5
8
  ## Safe setup
@@ -7,11 +10,11 @@ The optional AI-DLC Coordination service is a separate Docker-deployable authori
7
10
  Preview a configuration first. Outside an interactive terminal, provide all four selection flags.
8
11
 
9
12
  ```sh
10
- npx --package @felixdotgo/aidlc-kit@0.0.1 aidlc-workflow mcp setup . --dry-run \
13
+ npx --package @felixdotgo/aidlc-kit@0.1.1 aidlc-kit mcp setup . --dry-run \
11
14
  --deployment docker --storage sqlite --bind localhost --workspace engineering
12
15
  ```
13
16
 
14
- This command uses the npm package at version `0.0.1`. To run from a source checkout instead, see the [development guide](./development.md).
17
+ This command uses the npm package at version `0.1.1`. To run from a source checkout instead, see the [development guide](./development.md).
15
18
 
16
19
  Remove `--dry-run` and confirm to create `.agents/aidlc-coordination/` and update `.agents/config.json`. Setup does not start Docker. Copy `.env.example` to a secret-managed `.env`, review it, then start explicitly:
17
20
 
@@ -74,7 +74,7 @@ To test the package before release, create its `.tgz` archive and run the local
74
74
 
75
75
  ```sh
76
76
  npm pack
77
- npx --package felixdotgo-aidlc-kit-0.0.1.tgz -- aidlc-workflow init .
77
+ npx --package felixdotgo-aidlc-kit-0.1.1.tgz -- aidlc-kit init .
78
78
  ```
79
79
 
80
80
  `npx` runs the archive without publishing it. Run the command from the directory containing the archive. Use a disposable project instead of `.` if you do not want the command to write workflow files into the current directory.
@@ -95,6 +95,20 @@ The TypeScript implementation powers the package CLI. Installed projects use a d
95
95
 
96
96
  Likewise, a public configuration or schema change must update its validator, JSON schema, installed assets, package inventory, documentation, and tests together.
97
97
 
98
+ ## Code style and conventions
99
+
100
+ Adopted as the project baseline (approved decision `D1-convention-standard` on task `refactor-source-readability`):
101
+
102
+ - **Strict TypeScript, no new dependencies for tooling.** Keep `strict` mode; enforce via `npm run lint` (`tsc --noEmit`). No ESLint/Prettier for now.
103
+ - **File size targets.** Aim for ≤250 lines per source file and ≤60 lines per function; split by domain responsibility when exceeded.
104
+ - **Module boundaries.** One responsibility per module; a facade module may re-export a public API for compatibility (for example `src/state.ts`).
105
+ - **Naming.** Descriptive camelCase for functions/variables, `PascalCase` for types/interfaces, `SCREAMING_SNAKE_CASE` for true constants; file names match their primary export.
106
+ - **Error handling.** Fail with typed, one-line errors; never swallow exceptions silently; validate inputs before I/O.
107
+ - **Dependencies.** Pass dependencies (fetch, clock, environment) explicitly as parameters; avoid module-level mutable state.
108
+ - **Public API.** Document exported symbols with JSDoc when the contract is non-obvious.
109
+ - **Behavior preservation.** Refactors must not change CLI output, state schema, file layout, or installed assets; run parity tests.
110
+ - **Verification.** Run the narrowest relevant test while iterating; `npm test` + `npm run lint` before handing off.
111
+
98
112
  ## Safe implementation rules
99
113
 
100
114
  - Resolve all project-relative paths through the shared path helpers; reject traversal and symlink escape.
@@ -116,7 +116,10 @@ See [Configuration](./configuration.md) for project customisation and [Command r
116
116
 
117
117
  ## Optional end-to-end loop
118
118
 
119
- When the project enables `loop.mode`, `aidlc-workflow loop start` accepts a requirement once (interactive prompt or stdin), creates exactly one task under the configured authority, and runs the loop to the first gate or to completion. `loop status` reports the canonical task and gate checkpoint; `loop resume` continues after an interruption. The intake is idempotent: re-running `start` with the same task ID and requirement reuses the existing task, and it refuses to create a second task while another one is actionable.
119
+ > [!WARNING]
120
+ > The end-to-end loop and the coordination service are **experimental and unfinished**: they contain known bugs and rough edges, and — because the package is still pre-1.0 (`0.x`) — their commands, configuration, and recovery behaviour can change incompatibly in any release before `1.0.0`.
121
+
122
+ When the project enables `loop.mode`, `aidlc-kit loop start` accepts a requirement once (interactive prompt or stdin), creates exactly one task under the configured authority, and runs the loop to the first gate or to completion. `loop status` reports the canonical task and gate checkpoint; `loop resume` continues after an interruption. The intake is idempotent: re-running `start` with the same task ID and requirement reuses the existing task, and it refuses to create a second task while another one is actionable.
120
123
 
121
124
  The loop never approves a gate itself. At each gate it publishes the review packet and waits; in local mode approval happens only through the trusted host terminal command, and in fleet mode only through the reviewer credential against the published snapshot and revision. After a real approval the running supervisor re-reads the canonical state and checkpoint, re-acquires its fenced lease, and resumes automatically. If the supervisor is not running at approval time, restart it and it reconciles from the checkpoint; a consumed, stale, or mismatched checkpoint stops for manual reconciliation instead of guessing. Restarting never resumes a paused or handed-off task, an outdated snapshot, or an uncertain Git result — those require the documented recovery actions.
122
125
 
@@ -77,7 +77,7 @@ AIDLC_TEST_PROJECT="$(mktemp -d /tmp/aidlc-project.XXXXXX)"
77
77
 
78
78
  npm run build
79
79
  npm pack --pack-destination "$AIDLC_PACK_DIR"
80
- tar -xzf "$AIDLC_PACK_DIR/felixdotgo-aidlc-kit-0.0.1.tgz" -C "$AIDLC_EXTRACT_DIR"
80
+ tar -xzf "$AIDLC_PACK_DIR/felixdotgo-aidlc-kit-0.1.1.tgz" -C "$AIDLC_EXTRACT_DIR"
81
81
  node "$AIDLC_EXTRACT_DIR/package/dist/src/cli.js" init "$AIDLC_TEST_PROJECT" --agent codex --dry-run
82
82
  node "$AIDLC_EXTRACT_DIR/package/dist/src/cli.js" init "$AIDLC_TEST_PROJECT" --agent codex --yes
83
83
  node "$AIDLC_EXTRACT_DIR/package/dist/src/cli.js" status "$AIDLC_TEST_PROJECT"
@@ -100,7 +100,7 @@ node dist/dev/evaluator/cli.js run --runner local-simulated
100
100
 
101
101
  Runners exchange JSON, and reports capture transport, transcript, normalised events, usage, and diagnostics. Real Codex, Claude Code, or OpenCode runs can consume credentials and model budget; they are not required for ordinary development verification.
102
102
 
103
- The pinned `opencode-gpt6` runner uses adapter `opencode` with model `opencode-go/gpt-6-luna`, version `opencode-2.2.0`, protocol version `2`, real evidence, and a 300000 ms timeout. It runs `opencode run --format json --standalone --auto` once per turn, resumes with `--session`, and writes `opencode.json` containing `{"mcp": {}}` into each scenario workspace so project MCP servers do not leak into the evaluation. OpenCode resolves its project directory from the inherited `PWD`, not the spawned process working directory, so the runner and the loop driver pin `PWD` to the workspace; without that pin, commands would silently run in the invoking repository. OpenCode has no environment-credential mode, so the runner reuses the local Console authentication; the residual risk is that user plugins or agents can still load. That isolation is workspace configuration, not a security boundary.
103
+ The pinned `opencode-beam` runner uses adapter `opencode` with model `opencode-go/beam-free`, version `opencode-2.2.0`, protocol version `2`, real evidence, and a 300000 ms timeout; the `economy` category is pinned to the lighter `opencode-go/beam-free#medium` variant so heavier turns stay inside that timeout. It runs `opencode run --format json --standalone --auto` once per turn, resumes with `--session`, and writes `opencode.json` containing `{"mcp": {}}` into each scenario workspace so project MCP servers do not leak into the evaluation. OpenCode resolves its project directory from the inherited `PWD`, not the spawned process working directory, so the runner and the loop driver pin `PWD` to the workspace; without that pin, commands would silently run in the invoking repository. OpenCode has no environment-credential mode, so the runner reuses the local Console authentication; the residual risk is that user plugins or agents can still load. That isolation is workspace configuration, not a security boundary.
104
104
 
105
105
  The release-eligible `aidlc-official-agentic` suite is version `2.5.0`. Its `supported-adapters` scenario asks the agent to explain that the workflow supports Codex, Claude Code, and OpenCode without executing remote code or shell strings. The suite also includes `build-multi-item-continuation`, which starts with three canonical build items and requires one agent run to complete all of them, record verification/review evidence, and stop only at a ready G2. This complements unit guards by exercising the model-facing continuation contract.
106
106
 
@@ -126,17 +126,17 @@ Publishing, tagging, committing, and pushing are separate human-authorised actio
126
126
 
127
127
  ## First npm publication
128
128
 
129
- The first release is `@felixdotgo/aidlc-kit@0.0.1`, with public access and the `latest` dist-tag. Complete the release checks and the project's human review gates before publishing.
129
+ The first release is `@felixdotgo/aidlc-kit@0.1.1`, with public access and the `latest` dist-tag. Complete the release checks and the project's human review gates before publishing.
130
130
 
131
131
  From the repository root, sign in to an npm account with permission to publish to the `@felixdotgo` scope and confirm the active account:
132
132
 
133
133
  ```sh
134
134
  npm login --registry https://registry.npmjs.org
135
135
  npm whoami --registry https://registry.npmjs.org
136
- npm view @felixdotgo/aidlc-kit@0.0.1 version --registry https://registry.npmjs.org
136
+ npm view @felixdotgo/aidlc-kit@0.1.1 version --registry https://registry.npmjs.org
137
137
  ```
138
138
 
139
- An unpublished package normally returns `404` from `npm view`; that response does not establish scope ownership or publish permission. If `0.0.1` already exists, stop: npm versions cannot be overwritten. If `npm whoami` returns `401`, sign in again before publishing.
139
+ An unpublished package normally returns `404` from `npm view`; that response does not establish scope ownership or publish permission. If `0.1.1` already exists, stop: npm versions cannot be overwritten. If `npm whoami` returns `401`, sign in again before publishing.
140
140
 
141
141
  After inspecting the local tarball and documentation, publish from the repository root:
142
142
 
@@ -149,8 +149,8 @@ npm publish --access public --tag latest --registry https://registry.npmjs.org
149
149
  Confirm the published version, dist-tag and artifact metadata:
150
150
 
151
151
  ```sh
152
- npm view @felixdotgo/aidlc-kit@0.0.1 version dist.tarball dist.integrity --json --registry https://registry.npmjs.org
152
+ npm view @felixdotgo/aidlc-kit@0.1.1 version dist.tarball dist.integrity --json --registry https://registry.npmjs.org
153
153
  npm view @felixdotgo/aidlc-kit dist-tags --json --registry https://registry.npmjs.org
154
154
  ```
155
155
 
156
- Expect version `0.0.1`, a tarball URL and integrity value, and `latest` pointing to `0.0.1`. Git tags, GitHub releases, commits, and pushes require their own delivery authorisation.
156
+ Expect version `0.1.1`, a tarball URL and integrity value, and `latest` pointing to `0.1.1`. Git tags, GitHub releases, commits, and pushes require their own delivery authorisation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felixdotgo/aidlc-kit",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Install a local, agent-adapted AI-DLC workflow into a project.",
5
5
  "keywords": [
6
6
  "ai-dlc",
@@ -22,7 +22,7 @@
22
22
  "license": "MIT",
23
23
  "type": "module",
24
24
  "bin": {
25
- "aidlc-workflow": "dist/src/cli.js"
25
+ "aidlc-kit": "dist/src/cli.js"
26
26
  },
27
27
  "files": [
28
28
  "dist/src",