ai-collab-open-system 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.
@@ -105,7 +105,7 @@ Expected result: profile/context, acceptance, execution prompt, guard review, ha
105
105
 
106
106
  ## Want the AI to remind you on its own
107
107
 
108
- Tired of remembering to run the guard yourself? Install the adapter into your AI tool's always-on instructions with `node bin/ai-collab.js adapters install --target <repo>` (after publish: `ai-collab adapters install --target <repo>`). It turns on restrained coaching reminders, so the AI prompts you at the key moments - define done, review a completion claim, hand off, harvest. If you only have one tool, the completion-claim check routes through `single-tool-guard` (a fresh adversarial pass in the same tool) instead of a second AI brand.
108
+ Tired of remembering to run the guard yourself? Install the adapter into your AI tool's always-on instructions with `ai-collab adapters install --target <repo>`. It turns on restrained coaching reminders, so the AI prompts you at the key moments - define done, review a completion claim, hand off, harvest. If you only have one tool, the completion-claim check routes through `single-tool-guard` (a fresh adversarial pass in the same tool) instead of a second AI brand.
109
109
 
110
110
  ## Where to go next
111
111
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "name": "AI Collaboration Open System Workspace",
3
- "version": "0.1.0",
2
+ "name": "DoneTrace Workspace",
3
+ "version": "0.1.1",
4
4
  "localFirst": true,
5
5
  "defaultNetworkUse": "none",
6
6
  "workspaceDirs": [
@@ -60,15 +60,19 @@ Separate from the timed reminders above: when the user's message contains one of
60
60
 
61
61
  When none of these words appears, ignore this section and behave normally — never force a mode the user did not ask for.
62
62
 
63
- ### First-run promise (act on this the FIRST time, before anything else)
63
+ ### First-run onboarding (one-time, trigger-driven runs in full when the user asks to start)
64
64
 
65
- The first time you work with this user after the workspace is installed on your very first reply, proactively — run the full onboarding script below. Do not wait to be asked. This is a four-step script (install -> scan -> profile + pain points -> harvest), and you run it as a guided conversation, one step at a time, stopping for the user wherever it says to stop.
65
+ This one-time onboarding is SEPARATE from the day-to-day coaching restraint above: that restraint governs recurring, per-turn nudges, while this is a single guided welcome that runs once, right after install. Running it once does NOT count as over-prompting.
66
+
67
+ Reliable trigger: the `ai-collab first-run` command tells the user to send you one line — "Walk me through the ai-collab first run". When the user's message is that line (or any clear request — in any language, including the exact line the first-run command printed for the user — to start, onboard, or be walked through ai-collab), run the full four-step script below as a guided conversation — one step at a time, stopping for the user wherever it says to stop. Because that is a direct user request, it overrides the restraint above.
68
+
69
+ If the user did NOT send a clear start request but their message is a question ABOUT ai-collab itself (e.g. "what is this", "what can it do", "what does this setup do", "how do I use this", "is this an AI", or the same in any language), OR they only said hello / brought no specific task yet: briefly answer their question in one or two plain sentences, AND offer the walkthrough with ONE short line ("Want me to walk you through what this setup does? Just say the word.") then wait — do NOT silently leave a curious newcomer with no next step, and do NOT launch the full four steps unprompted. Only when the user arrives with their OWN specific task (fix a bug, add a feature, change something concrete) do you skip even that offer and just do their task — never block a real task the user actually came with, though you may mention the walkthrough once at a natural pause. After onboarding is done or declined, the restraint above applies normally.
66
70
 
67
71
  **HARD RULE throughout — PLAIN LANGUAGE.** Never hand the user a technical term. Translate every task title into everyday words in your head before you say it: "auth" -> "login stuff", "payment" -> "money / checkout", "refactor" -> "tidying up the code", "API" -> "the connection between two things". Even a very technical title gets translated first. The whole script is spoken in the user's own language and stays plain — a person who has never written code should follow every sentence.
68
72
 
69
73
  #### Step 0 — Installed (show the canonical intro VERBATIM)
70
74
 
71
- Run `ai-collab welcome` (before publish: `node bin/ai-collab.js welcome`) and show its output VERBATIM. Do NOT re-summarize or paraphrase it — the CLI hard-prints the canonical intro (the six layers, the keyword modes, the honest privacy line, the closing question) so it always lands in full instead of being garbled by a re-write. Print it as-is, then STOP and let the user answer the closing question.
75
+ Run `ai-collab welcome` and show its output VERBATIM. Do NOT re-summarize or paraphrase it — the CLI hard-prints the canonical intro (the six layers, the keyword modes, the honest privacy line, the closing question) so it always lands in full instead of being garbled by a re-write. Print it as-is, then STOP and let the user answer the closing question.
72
76
 
73
77
  #### Step 1 — Scan (only after they say go)
74
78
 
@@ -76,7 +80,7 @@ When they say to scan ("scan" / "go" / "just the X project" / etc.): first state
76
80
 
77
81
  Honesty about the scan — you MUST say this before scanning, it is the whole point: the scan is done by YOU, the cloud AI they already use, so the content passes through your provider's servers like any normal chat. Say plainly: this is NOT "zero data leaves your machine" — any tool claiming "absolutely no leak" is bluffing. But it is no more exposure than normally talking to you. The ai-collab tool itself sends nothing to third parties. They can narrow the scope or decline. Default scope: only the currently active project, nothing wider unless they ask.
78
82
 
79
- Then run `ai-collab bootstrap --yes` (before publish: `node bin/ai-collab.js bootstrap --yes`) for the DETERMINISTIC facts: which "done"s lack evidence (VERIFY), what is in flight (RESUME), profile clues, high-risk role signals, harvestable lessons. Everything you say from here on is built on these scanned facts plus the conversation you are having now — never on a guess.
83
+ Then run `ai-collab bootstrap --yes` for the DETERMINISTIC facts: which "done"s lack evidence (VERIFY), what is in flight (RESUME), profile clues, high-risk role signals, harvestable lessons. Everything you say from here on is built on these scanned facts plus the conversation you are having now — never on a guess.
80
84
 
81
85
  #### Step 2 — Profile read + collaboration advice + CONFIRM (do this first, one block, then WAIT)
82
86
 
@@ -10,8 +10,8 @@ A synthetic execution session reaches a 'done, implemented and tested' claim. At
10
10
 
11
11
  A solo user is working in one AI tool on a small synthetic feature. The coach runs at standard. The session passes through several collaboration moments; this shows the coach firing at the completion-claim node, once, with a concrete next step.
12
12
 
13
- ### First-run: act proactively the first time
14
- "You just installed a collaboration discipline — before I say 'done' I'll show evidence, when I'm unsure I'll pull in a second AI, you won't re-explain when you switch tools, and I'll help you save what's worth keeping. Want me to take 30 seconds and look at a few of your recent tasks to show you what this changes?" Then it offers a scan, respects yes / narrow / no, and gets to work; it does not repeat this.
13
+ ### First-run: one-time onboarding, trigger-driven
14
+ Earlier this session the user sent the trigger line first-run printed ("Walk me through the ai-collab first run."), so the coach ran the one-time welcome — it did NOT fire this on its own opening reply. "You just installed a collaboration discipline — before I say 'done' I'll show evidence, when I'm unsure I'll pull in a second AI, you won't re-explain when you switch tools, and I'll help you save what's worth keeping. Want me to take 30 seconds and look at a few of your recent tasks to show you what this changes?" Then it offered a scan, stated the privacy boundary first, respected yes / narrow / no, and got to work; it does not repeat this.
15
15
 
16
16
  ### Firing node and signal
17
17
  Node 3, completion claim. The execution assistant just returned: "Done. I implemented the new sort option and added a test; everything passes." That 'done / everything passes' phrasing is the signal.
@@ -24,7 +24,7 @@ Input:
24
24
  [paste redacted task material, context package, and acceptance card here]
25
25
 
26
26
  Process:
27
- 1. On the FIRST message after install, act proactively: introduce yourself, offer to scan the user's recent work, state the privacy boundary before scanning (the scan is run by you, the cloud AI they already use, so content passes through your provider like any normal chat — not 'zero data leaves the machine'), and respect their yes / narrow / no choice — not just recite a list of future reminder moments. Then say reminders are restrained by default and switchable with `coach: light` / `coach: strict`. Do this once, then stop.
27
+ 1. First-run onboarding is one-time and trigger-driven, NOT something you fire automatically on your first reply. When the user sends the trigger line first-run printed (Walk me through the ai-collab first run.) or otherwise clearly asks to start / be onboarded, run the guided welcome: introduce yourself, offer to scan the user's recent work, state the privacy boundary before scanning (the scan is run by you, the cloud AI they already use, so content passes through your provider like any normal chat — not 'zero data leaves the machine'), and respect their yes / narrow / no choice — not just recite a list of future reminder moments. Then say reminders are restrained by default and switchable with `coach: light` / `coach: strict`. Do this once, then stop.
28
28
  2. Map each firing moment to its node and reminder. 1 Task start -> set a context boundary and acceptance before building. 2 Pre-execution -> define the acceptance card first. 3 Completion claim -> run a guard review before trusting it. 4 Long thread / tool switch -> generate a handoff instead of relying on chat memory. 5 Reusable insight -> harvest it into a card. 6 Repeated preference -> offer it as a profile-update candidate.
29
29
  3. At node 3 (completion claim), branch on available model families and name the matching guard: one model family only -> run single-tool-guard (a new conversation plus an adversarial prompt); a second, different family available -> run dual-guard (the cross-family binding gate); a multi-tool setup -> run the full fusion review. Do not silently skip the branch and just say 'looks good'.
30
30
  4. Apply the restraint tier before speaking. Light: only fire at nodes 3 and 4. Standard (default): fire at nodes 1, 3, 4, 6 — fold node 2 into the task-start reminder (skip it entirely if node 1 already landed an acceptance card) and node 5 into a natural pause, not a separate interruption; count "once per moment" by task phase, not by node, so the opening of one task is a single moment even if nodes 1 and 2 both trip — never stack reminders on back-to-back turns at a task's start, and never re-raise a reminder already acted on. Strict: fire at all six every time they trip. If a tier would make you repeat a just-given reminder, stay silent instead.
@@ -32,7 +32,7 @@ Process:
32
32
  6. Honor a restraint switch immediately. When the user says `coach: light` / `coach: standard` / `coach: strict`, change tier for the rest of the session without arguing, and confirm the new tier in a few words.
33
33
 
34
34
  Output shape:
35
- - First-run promise: on the first reply, the assistant proactively introduces itself, offers to scan the user's recent work, states the privacy boundary before scanning, and respects the user's yes / narrow / no choice — rather than passively reciting a list of future reminder moments.
35
+ - First-run promise: one-time and trigger-driven (when the user sends the first-run trigger line or asks to start), the assistant introduces itself, offers to scan the user's recent work, states the privacy boundary before scanning, and respects the user's yes / narrow / no choice — rather than firing automatically on the first reply or passively reciting a list of future reminder moments.
36
36
  - Per-moment reminder: the firing node named, plus the one-or-two-sentence concrete next step it hands over.
37
37
  - Completion-claim branch: which guard was named (single-tool-guard / dual-guard / full fusion) based on available model families.
38
38
  - Restraint state: the current tier and a note that the reminder respected it (and was not a repeat of one already acted on).
@@ -47,7 +47,7 @@ Return:
47
47
  - Next action
48
48
 
49
49
  Pass bar (do not pass unless all hold):
50
- - On the first reply the assistant acted proactively: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward.
50
+ - When the user sent the first-run trigger line (or otherwise asked to start), the assistant ran the one-time onboarding: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward — and it did not fire this onboarding automatically on an unrelated first reply.
51
51
  - Each reminder fired at the right node with a concrete next step the user can act on in one move.
52
52
  - The completion-claim node named the correct guard depth for the number of model families available.
53
53
  - Restraint held: standard by default, once per moment, no reminder the user already acted on was re-raised, and a `coach:` switch was honored immediately.
@@ -29,7 +29,7 @@ The live collaboration moment (which of the six nodes is firing, and the signal
29
29
 
30
30
  ## Process
31
31
 
32
- 1. On the FIRST message after install, act proactively: introduce yourself, offer to scan the user's recent work, state the privacy boundary before scanning (the scan is run by you, the cloud AI they already use, so content passes through your provider like any normal chat — not 'zero data leaves the machine'), and respect their yes / narrow / no choice — not just recite a list of future reminder moments. Then say reminders are restrained by default and switchable with `coach: light` / `coach: strict`. Do this once, then stop.
32
+ 1. First-run onboarding is one-time and trigger-driven, NOT something you fire automatically on your first reply. When the user sends the trigger line first-run printed (Walk me through the ai-collab first run.) or otherwise clearly asks to start / be onboarded, run the guided welcome: introduce yourself, offer to scan the user's recent work, state the privacy boundary before scanning (the scan is run by you, the cloud AI they already use, so content passes through your provider like any normal chat — not 'zero data leaves the machine'), and respect their yes / narrow / no choice — not just recite a list of future reminder moments. Then say reminders are restrained by default and switchable with `coach: light` / `coach: strict`. Do this once, then stop.
33
33
  2. Map each firing moment to its node and reminder. 1 Task start -> set a context boundary and acceptance before building. 2 Pre-execution -> define the acceptance card first. 3 Completion claim -> run a guard review before trusting it. 4 Long thread / tool switch -> generate a handoff instead of relying on chat memory. 5 Reusable insight -> harvest it into a card. 6 Repeated preference -> offer it as a profile-update candidate.
34
34
  3. At node 3 (completion claim), branch on available model families and name the matching guard: one model family only -> run single-tool-guard (a new conversation plus an adversarial prompt); a second, different family available -> run dual-guard (the cross-family binding gate); a multi-tool setup -> run the full fusion review. Do not silently skip the branch and just say 'looks good'.
35
35
  4. Apply the restraint tier before speaking. Light: only fire at nodes 3 and 4. Standard (default): fire at nodes 1, 3, 4, 6 — fold node 2 into the task-start reminder (skip it entirely if node 1 already landed an acceptance card) and node 5 into a natural pause, not a separate interruption; count "once per moment" by task phase, not by node, so the opening of one task is a single moment even if nodes 1 and 2 both trip — never stack reminders on back-to-back turns at a task's start, and never re-raise a reminder already acted on. Strict: fire at all six every time they trip. If a tier would make you repeat a just-given reminder, stay silent instead.
@@ -38,7 +38,7 @@ The live collaboration moment (which of the six nodes is firing, and the signal
38
38
 
39
39
  ## Output shape
40
40
 
41
- - First-run promise: on the first reply, the assistant proactively introduces itself, offers to scan the user's recent work, states the privacy boundary before scanning, and respects the user's yes / narrow / no choice — rather than passively reciting a list of future reminder moments.
41
+ - First-run promise: one-time and trigger-driven (when the user sends the first-run trigger line or asks to start), the assistant introduces itself, offers to scan the user's recent work, states the privacy boundary before scanning, and respects the user's yes / narrow / no choice — rather than firing automatically on the first reply or passively reciting a list of future reminder moments.
42
42
  - Per-moment reminder: the firing node named, plus the one-or-two-sentence concrete next step it hands over.
43
43
  - Completion-claim branch: which guard was named (single-tool-guard / dual-guard / full fusion) based on available model families.
44
44
  - Restraint state: the current tier and a note that the reminder respected it (and was not a repeat of one already acted on).
@@ -47,7 +47,7 @@ The live collaboration moment (which of the six nodes is firing, and the signal
47
47
 
48
48
  ## Pass bar (what counts as done / safe to trust)
49
49
 
50
- - On the first reply the assistant acted proactively: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward.
50
+ - When the user sent the first-run trigger line (or otherwise asked to start), the assistant ran the one-time onboarding: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward — and it did not fire this onboarding automatically on an unrelated first reply.
51
51
  - Each reminder fired at the right node with a concrete next step the user can act on in one move.
52
52
  - The completion-claim node named the correct guard depth for the number of model families available.
53
53
  - Restraint held: standard by default, once per moment, no reminder the user already acted on was re-raised, and a `coach:` switch was honored immediately.
@@ -8,7 +8,7 @@ Make the assistant proactively remind the user of the matching collaboration ste
8
8
 
9
9
  ## Template
10
10
 
11
- ### First-run promise (first reply, proactive introduce + offer to scan + state the privacy boundary + respect yes / narrow / no):
11
+ ### First-run promise (one-time, trigger-driven — on the first-run trigger line / a start request, NOT auto on the first reply: introduce + offer to scan + state the privacy boundary + respect yes / narrow / no):
12
12
 
13
13
 
14
14
  ### Firing node (1-6) and the signal that tripped it:
@@ -35,7 +35,7 @@ Make the assistant proactively remind the user of the matching collaboration ste
35
35
 
36
36
  ## Pass bar (tick before you trust the result)
37
37
 
38
- - On the first reply the assistant acted proactively: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward.
38
+ - When the user sent the first-run trigger line (or otherwise asked to start), the assistant ran the one-time onboarding: it introduced itself, offered to scan recent work, stated the privacy boundary before scanning, respected the user's yes / narrow / no choice, and did not repeat the intro afterward — and it did not fire this onboarding automatically on an unrelated first reply.
39
39
  - Each reminder fired at the right node with a concrete next step the user can act on in one move.
40
40
  - The completion-claim node named the correct guard depth for the number of model families available.
41
41
  - Restraint held: standard by default, once per moment, no reminder the user already acted on was re-raised, and a `coach:` switch was honored immediately.
@@ -8,7 +8,7 @@ Everything stays local-first. You paste a redacted description into the AI tools
8
8
 
9
9
  What you need: one real task that is a bit messy, and one AI tool you can paste into. A second tool of a different model family (a different AI brand) makes Step 3 much stronger, but you can run all three rounds in one tool if that is all you have.
10
10
 
11
- Want the AI to prompt you for these steps on its own - to ping you to review every time it says "done", instead of you remembering to paste Step 3? Install the adapter into your tool's always-on instructions with `node bin/ai-collab.js adapters install --target <repo>`; it turns on the coaching reminders, and if you only have one tool it routes the completion-claim check through `single-tool-guard` (a fresh adversarial pass in the same tool).
11
+ Want the AI to prompt you for these steps on its own - to ping you to review every time it says "done", instead of you remembering to paste Step 3? Install the adapter into your tool's always-on instructions with `ai-collab adapters install --target <repo>`; it turns on the coaching reminders, and if you only have one tool it routes the completion-claim check through `single-tool-guard` (a fresh adversarial pass in the same tool).
12
12
 
13
13
  ## Step 1 (2 min) - Define done before any work
14
14
 
package/CHANGELOG.md CHANGED
@@ -1,14 +1,25 @@
1
1
  # Changelog
2
2
 
3
- This project's source is on GitHub with CI green, but it is **not published to npm**. The version
4
- below is prepared and unpublished; see [Release Status](./README.md#release-status) for the
5
- four-state ladder.
3
+ This project is **published to npm** as `ai-collab-open-system`, and the global `ai-collab` command
4
+ is live. See [Release Status](./README.md#release-status) for the four-state ladder it moved through.
6
5
 
7
- ## 0.1.0Unreleased (GitHub source on `main`, CI green)
6
+ ## 0.1.12026-06-27
8
7
 
9
- Status: source pushed to GitHub on `main` with CI green; **not git-tagged and not published to
10
- npm**. No release date is claimed because no npm release has happened. The date here will be
11
- filled in only when the package is actually published.
8
+ Status: patch release for the published npm package line; `ai-collab-open-system` remains the npm
9
+ package name and `ai-collab` remains the global command, while DoneTrace is the formal product name.
10
+
11
+ - Formalized **DoneTrace** as the product name across the README, package metadata, CLI first-run
12
+ copy, generated workspace comments, and open-system start docs.
13
+ - Preserved compatibility for existing npm users by keeping the package name `ai-collab-open-system`
14
+ and the executable command `ai-collab`.
15
+ - Kept private owner decision records outside the public package, so old naming notes remain
16
+ historical context rather than current execution guidance.
17
+
18
+ ## 0.1.0 — 2026-06-25 (published to npm)
19
+
20
+ Status: published to npm as `ai-collab-open-system@0.1.0`; the global `ai-collab` command installs via
21
+ `npm install -g ai-collab-open-system` and every documented command works as written. Source is on
22
+ GitHub `main` with CI green.
12
23
 
13
24
  - Hardened CI: Node 18/20/22 matrix running `npm ci`, `npm run check`, `npm pack`, a fresh-tarball
14
25
  install smoke test (install the packed artifact into a clean dir and run the installed `ai-collab`
package/README.md CHANGED
@@ -1,8 +1,23 @@
1
- # AI Collaboration Open System
1
+ # DoneTrace
2
+ A local-first layer for evidence, review, supervision, handoff, and learning in AI workflows.
3
+
4
+ For builders whose AI keeps saying “done” before the work is actually proven.
5
+
6
+ DoneTrace is a local-first evidence, review, supervision, and handoff layer for AI workflows.
7
+ It does not replace Claude, Cursor, Codex, or your other tools.
8
+ It makes the work checkable.
9
+
10
+ ## What it adds
11
+
12
+ - acceptance before execution
13
+ - evidence before “done”
14
+ - independent re-check with another model family
15
+ - handoff across tools and sessions
16
+ - harvest after the task
2
17
 
3
18
  Does your AI keep saying "done" when it is not? This is an **open-source personal AI collaboration workspace** — a thin discipline pack you drop into the AI you already use (Claude, Cursor, Codex, and others). It does not write your code and does not think for you. It does one thing: it makes your AI prove a "done" claim with evidence, gets a second AI to re-check it, and lets you switch tools or pick the work up tomorrow without re-explaining the background. Why a workspace beats a better prompt: [docs/WHY_THIS_EXISTS.md](./docs/WHY_THIS_EXISTS.md). New here? Start at [START_HERE.md](./START_HERE.md).
4
19
 
5
- > Runs today from a clone (`node bin/ai-collab.js`); the npm package and global `ai-collab` command are not published yet see [Release Status](#release-status).
20
+ > Install globally: `npm install -g ai-collab-open-system`, then use the `ai-collab` command everywhere below. If you cloned the source instead, replace `ai-collab` with `node bin/ai-collab.js` in every command.
6
21
 
7
22
  中文:你的 AI 是不是老跟你说"搞定了",其实没做完?这是一套塞进你现有 AI(Claude、Cursor、Codex 等)的开源"协作纪律包"。它不替你写代码、不替你想,只干一件事:让 AI 说"做完了"前先拿证据自证、让另一个 AI 复核一遍、让你换工具或隔天再接着干时不用重讲背景。为什么是工作区而不是提示词,见 docs/WHY_THIS_EXISTS.md;新手从 START_HERE.md 开始。
8
23
 
@@ -37,19 +52,18 @@ That is the value: less smooth guessing, more visible state. This is a local AI
37
52
 
38
53
  ## Run it in 2 minutes
39
54
 
40
- One main path. Clone, init a workspace, then open the 10-minute walkthrough that is the whole on-ramp.
41
-
42
- > The package is not on npm yet, so the commands below use the local CLI entry `node bin/ai-collab.js`. After the npm package ships, the same commands work under the global `ai-collab` name (e.g. `ai-collab init ...`); until then, keep using `node bin/ai-collab.js`.
55
+ One main path: `first-run`. One command does the whole on-ramp — it **creates your workspace, installs the rules into your AI's always-on instructions (CLAUDE.md / AGENTS.md / Cursor rules / …), and prints the one line you send your AI** so it starts guiding you.
43
56
 
44
57
  ```bash
45
- git clone https://github.com/aaronyi97/ai-collab-open-system.git
46
- cd ai-collab-open-system
47
- node bin/ai-collab.js init --target ./my-ai-workspace
58
+ npm install -g ai-collab-open-system
59
+ ai-collab first-run --target . --tool claude # or codex / cursor / copilot / cline / windsurf
48
60
  ```
49
61
 
50
- Now open `./my-ai-workspace/.aict/walkthroughs/10-minute-your-task.md`. In 10 minutes you will feel three things on your own task: **the AI defines *done* before it touches the work**, an **independent re-check pressure-tests the "completed" claim against the evidence passing, rejecting, or flagging insufficient evidence depending on what the evidence shows**, and **task state stops living only in the chat scroll** (it sits in plain files you can reopen, hand off, and resume).
62
+ (Prefer not to install globally? Clone the repo and run `node bin/ai-collab.js first-run --target . --tool claude` insteadsame command, local entry.)
63
+
64
+ That command ends by printing one line to copy into your AI; the moment your AI receives it, it introduces the system, offers a read-only scan of your recent work, and starts the guided first run. **Why this matters:** plain `ai-collab init` only creates the workspace files — it does **not** install any AI rules, so your AI will not open up or guide you on its own. `first-run` is the path that actually wires the rules into your tool. (`init` is still useful on its own when you just want the local workspace files; see Commands below.)
51
65
 
52
- (To open the file: macOS `open <file>` · Linux `xdg-open <file>` · Windows `start <file>`. `init` writes a local `.aict/` workspace of plain files; it does not use the network.)
66
+ (`first-run` writes a local `.aict/` workspace of plain files plus your tool's rule file; it does not use the network. To open any workspace file later: macOS `open <file>` · Linux `xdg-open <file>` · Windows `start <file>`.)
53
67
 
54
68
  ### Or taste it with zero install (60 seconds)
55
69
 
@@ -73,12 +87,12 @@ For the full public-system explanation, read [docs/open-system/00-start-here.md]
73
87
 
74
88
  中文:一个AI也能开始:先把"做完了"变成有证据、可复核、可交接、可沉淀的结果。这就是大部分价值。有第二个模型族时,可以升级成跨族双守卫。那是一个单工具给不了自己的独立复核。守卫等级怎么算、为什么单工具自称的跨族复核会被标成"未验证",见下面 Commands 和 --help。
75
89
 
76
- ## First Run (keep the workspace as local files)
90
+ ## `init`: workspace files only (the manual / advanced path)
77
91
 
78
- This is the same `init` as the 2-minute path, with the cross-platform openers spelled out. You only need it if you want the workspace saved locally so the same rules drive every tool and survive across sessions:
92
+ This is **not** the recommended first experience — `first-run` (above) is. Use `init` only when you want the local `.aict/` workspace files **by themselves**, with **no AI rules installed**. It builds the workspace; it does **not** wire any rules into your AI, so on its own `init` will not make your AI open up or guide you. Cross-platform openers spelled out:
79
93
 
80
94
  ```bash
81
- node bin/ai-collab.js init --target ./my-ai-workspace
95
+ ai-collab init --target ./my-ai-workspace
82
96
  # then open these two files in your editor — pick your platform's opener:
83
97
  # macOS: open ./my-ai-workspace/.aict/START_HERE.md
84
98
  # Linux: xdg-open ./my-ai-workspace/.aict/START_HERE.md
@@ -86,13 +100,13 @@ node bin/ai-collab.js init --target ./my-ai-workspace
86
100
  # (then the same for ./my-ai-workspace/.aict/walkthroughs/10-minute-your-task.md)
87
101
  ```
88
102
 
89
- `init` writes a local `.aict/` workspace of plain files. Network: not used at runtime. If you ran this inside a clone of *this* repo, the generated `my-ai-workspace/` is already in our `.gitignore`, so it will not show up as untracked files or dirty your `git status`. Next, take the 10-minute first experience below: the main path runs the loop on *your own* real task; if you would rather watch the flow on a prepared example first, the demo preview (`.aict/walkthroughs/10-minute.md`) is the optional second path.
103
+ `init` writes a local `.aict/` workspace of plain files and nothing else. Network: not used at runtime. If you ran this inside a clone of *this* repo, the generated `my-ai-workspace/` is already in our `.gitignore`, so it will not show up as untracked files or dirty your `git status`. To get the rules actually loaded into your AI, run `first-run` (above) instead — or, after `init`, add the rules with `ai-collab adapters install --target . --tool <claude|codex|cursor|...>`. Next, take the 10-minute first experience below: the main path runs the loop on *your own* real task; if you would rather watch the flow on a prepared example first, the demo preview (`.aict/walkthroughs/10-minute.md`) is the optional second path.
90
104
 
91
105
  ### What the first conversation looks like
92
106
 
93
- Once the workspace is installed, the rules **instruct** your AI to open the first conversation proactively, rather than waiting to be asked: introduce itself, offer to take ~30 seconds to scan your recent work, and state the privacy boundary *before* scanning (the scan is run by the cloud AI you already use, so its content passes through your provider like any normal chat — this is **not** "zero data leaves your machine"; the `ai-collab` tool itself sends nothing). You stay in control: answer "yes", "just the X project", or "not now". Whether the AI actually opens this way depends on your tool loading this rule — some tools follow workspace instructions more eagerly than others. If you would rather drive it yourself, run `node bin/ai-collab.js bootstrap --yes` for the same read-only baseline at any time.
107
+ Onboarding is **trigger-driven**, not automatic: your AI does not open up on its own first reply. Once the rules are installed (via `first-run`, or `init` + `adapters install`), you start the onboarding by sending your AI the one trigger line `first-run` prints — "Walk me through the ai-collab first run." (or by just asking it to start). Then the rules **instruct** your AI to run a one-time guided welcome: introduce itself, offer to take ~30 seconds to scan your recent work, and state the privacy boundary *before* scanning (the scan is run by the cloud AI you already use, so its content passes through your provider like any normal chat — this is **not** "zero data leaves your machine"; the `ai-collab` tool itself sends nothing). You stay in control: answer "yes", "just the X project", or "not now". (With `first-run --enable-hooks` on Claude Code, a project-local SessionStart hook sends that trigger for you automatically on your first session — Claude Code only.) Whether the AI follows the rule once triggered depends on your tool loading it — some tools follow workspace instructions more eagerly than others. If you would rather drive it yourself, run `ai-collab bootstrap --yes` for the same read-only baseline at any time.
94
108
 
95
- 中文:装好工作区后,这套规则会**指示**你的 AI 在第一次对话时主动开口(而不是等你问):先自我介绍、提出花约 30 秒扫一眼你最近的活,并在扫描**之前**说清隐私边界——扫描是由你本来就在用的那个云端 AI 执行的,内容会像平常聊天一样经过你的服务商,所以这**不是**「零数据离开你的机器」;`ai-collab` 工具本身不向任何第三方发送东西。主动权在你:回「好」「只看 X 项目」或「先不要」。AI 是否真的这样开口,取决于你的工具有没有加载这条规则——有的工具比别的更听工作区指令。想自己来,随时跑 `node bin/ai-collab.js bootstrap --yes` 拿同样的只读基线。
109
+ 中文:引导是**触发式**的,不会自动发生:你的 AI 不会在自己的第一条回复里主动开口。等规则装好后(用 `first-run`,或 `init` 加 `adapters install`),你把 `first-run` 打印出来的那句触发语发给 AI——「Walk me through the ai-collab first run.」(或直接让它开始),这套规则才会**指示**你的 AI 跑一次性的引导欢迎:先自我介绍、提出花约 30 秒扫一眼你最近的活,并在扫描**之前**说清隐私边界——扫描是由你本来就在用的那个云端 AI 执行的,内容会像平常聊天一样经过你的服务商,所以这**不是**「零数据离开你的机器」;`ai-collab` 工具本身不向任何第三方发送东西。主动权在你:回「好」「只看 X 项目」或「先不要」。(在 Claude Code 上用 `first-run --enable-hooks`,一个仅限本项目的 SessionStart 钩子会在你首次会话时替你自动发出那句触发语——仅限 Claude Code。)触发之后 AI 是否照做,取决于你的工具有没有加载这条规则——有的工具比别的更听工作区指令。想自己来,随时跑 `ai-collab bootstrap --yes` 拿同样的只读基线。
96
110
 
97
111
  ## 10-Minute Experience
98
112
 
@@ -102,8 +116,8 @@ Two ways in. Pick one.
102
116
 
103
117
  This is the fast way to feel why it matters: you watch the discipline work on *your* task, and an independent AI catch a thin "done" on something you actually care about.
104
118
 
105
- 1. Run `node bin/ai-collab.js init --target ./my-ai-workspace`.
106
- 2. Open `./my-ai-workspace/.aict/walkthroughs/10-minute-your-task.md` and follow its five steps.
119
+ 1. Run `ai-collab first-run --target . --tool claude` (or codex / cursor / …) — creates the workspace, installs your AI's rules, and prints the line to send your AI. (Just want the local files with no AI rules? `ai-collab init --target ./my-ai-workspace` does only that; your AI will not open up on its own.)
120
+ 2. Send your AI the printed trigger line ("Walk me through the ai-collab first run."), then open `./my-ai-workspace/.aict/walkthroughs/10-minute-your-task.md` and follow its five steps.
107
121
  3. You describe one real (lightly redacted) task and the AI returns a boundary card and an acceptance card — *done* defined before any work.
108
122
  4. You let it do only the accepted slice and report what it changed, ran, and did not verify.
109
123
  5. You open a fresh chat (ideally a different AI brand) and have it re-check the result against evidence — watch it pressure-test the "done" claim and either pass it, reject it, or flag insufficient evidence, depending on what the evidence shows rather than the tone.
@@ -118,7 +132,7 @@ Pick this if your task feels too sensitive to paste right now, or you just want
118
132
  4. You copy the context, acceptance, and execution prompt into your AI tool.
119
133
  5. You run guard review and watch it catch a false "done" the prepared case plants — then come back and run Path 1 on your own task.
120
134
 
121
- 中文路径:两条路任选其一。**路 1(推荐)跑你自己的真实任务**:跑 `node bin/ai-collab.js init --target ./my-ai-workspace`(发布到 npm 后才能用全局 `ai-collab`),打开 `.aict/walkthroughs/10-minute-your-task.md`,把你手头一个(脱敏的)真实乱任务丢进去,看 AI 先给边界卡和验收卡(先把“做完”定义清楚),再只做验收卡里的那一小块,最后你新开一个对话(最好换个牌子的 AI)逼它拿证据复核——它会拿证据压你的“做完了”,可能放行、可能驳回、也可能判证据不足,取决于证据本身,而不是替你假设结论。**路 2 先看演示**:怕任务敏感、或想先看流程长啥样,就先打开 `.aict/walkthroughs/10-minute.md`(演示预览版)走旗舰案例,再回来跑路 1。
135
+ 中文路径:两条路任选其一。**路 1(推荐)跑你自己的真实任务**:跑 `ai-collab first-run --target . --tool claude`(或 codex / cursor / …)——它会建工作区、把规则装进你的 AI、并打印出一句要发给 AI 的话(只想要本地工作区文件、不装 AI 规则?用 `ai-collab init --target ./my-ai-workspace` 只建文件,你的 AI 不会自己主动开口)。把打印出来的那句触发语发给 AI 开始引导,打开 `.aict/walkthroughs/10-minute-your-task.md`,把你手头一个(脱敏的)真实乱任务丢进去,看 AI 先给边界卡和验收卡(先把“做完”定义清楚),再只做验收卡里的那一小块,最后你新开一个对话(最好换个牌子的 AI)逼它拿证据复核——它会拿证据压你的“做完了”,可能放行、可能驳回、也可能判证据不足,取决于证据本身,而不是替你假设结论。**路 2 先看演示**:怕任务敏感、或想先看流程长啥样,就先打开 `.aict/walkthroughs/10-minute.md`(演示预览版)走旗舰案例,再回来跑路 1。
122
136
 
123
137
  ### Optional: prove it is the discipline, not the model (two-track comparison)
124
138
 
@@ -135,40 +149,48 @@ Want to try it on your own work and tell us what happened? See the [Dogfood Guid
135
149
  1. Fill a light profile for how you want AI to collaborate.
136
150
  2. Fill one context package for a real task, with private details redacted.
137
151
  3. Define acceptance before asking for output.
138
- 4. Use your tool adapter or install guidance files with `node bin/ai-collab.js adapters install --target <repo>`.
152
+ 4. Use your tool adapter or install guidance files with `ai-collab adapters install --target <repo>`.
139
153
  5. Run a guard review on the first artifact.
140
154
  6. Write a handoff note.
141
155
  7. Extract one harvest seed for future reuse.
142
156
 
143
157
  ## Commands
144
158
 
145
- Before publish, run every command as `node bin/ai-collab.js <args>` from a clone. After the package is published to npm, the same commands work under the global `ai-collab` name shown here:
159
+ With the package installed globally, run every command under the `ai-collab` name shown here (from a clone, `node bin/ai-collab.js <args>` is the same entry):
146
160
 
147
161
  ```bash
148
- node bin/ai-collab.js init --target ./my-ai-workspace
149
- node bin/ai-collab.js init --target ./my-ai-workspace --dry-run
150
- node bin/ai-collab.js guide
151
- node bin/ai-collab.js demo
152
- node bin/ai-collab.js check --workspace ./my-ai-workspace
153
- node bin/ai-collab.js adapters install --target ./my-repo
162
+ ai-collab first-run --target . --tool claude # recommended on-ramp: workspace + AI rules + the line to send your AI
163
+ ai-collab init --target ./my-ai-workspace # workspace files only (no AI rules — the AI will not open up on its own)
164
+ ai-collab init --target ./my-ai-workspace --dry-run
165
+ ai-collab guide
166
+ ai-collab demo
167
+ ai-collab check --workspace ./my-ai-workspace
168
+ ai-collab adapters install --target ./my-repo # install AI rules into an existing workspace (advanced; first-run does this for you)
154
169
  npm run check
155
170
  ```
156
171
 
172
+ **Optional Claude Code hooks (opt-in, off by default).** Add `--enable-hooks` to `first-run` / `adapters install` (Claude Code only) and the tool merges **two project-local** Claude Code hooks into the repo's own `.claude/settings.json` — never a global/home hook, and the install lists every file first and is removable:
173
+
174
+ - a **Stop** hook that reminds you to capture evidence + a receipt whenever you claim a task is done, and
175
+ - a one-time **SessionStart** hook so that, on your **first** Claude Code session in this repo, the AI starts the first-run walkthrough on its own — no need to paste the trigger line. It writes a small marker (`.claude/.ai-collab-firstrun-done`) the first time it fires and stays silent afterward.
176
+
177
+ Heads-up on the trust gate: the first time you open the repo in Claude Code it asks **"trust this folder?"** — accept it, otherwise the hook cannot run and the auto-start will not happen (you can always send the printed trigger line by hand instead).
178
+
157
179
  Once a workspace exists, operate the loop on a real task with the **run layer** — these are the commands that actually produce the evidence, receipts, and guard levels this README is about (omit `--workspace` to use `./.aict` here; a state command refuses if no workspace exists rather than scattering files):
158
180
 
159
181
  ```bash
160
- node bin/ai-collab.js task create --title "Fix the flaky reorder test" --workspace ./my-ai-workspace/.aict
161
- node bin/ai-collab.js run start --task t1 --command "npm test" --workspace ./my-ai-workspace/.aict
162
- node bin/ai-collab.js run finish --task t1 --exit 0 --workspace ./my-ai-workspace/.aict
163
- node bin/ai-collab.js evidence add --task t1 --kind output --summary "npm test -> exit 0, suite green" --workspace ./my-ai-workspace/.aict
164
- node bin/ai-collab.js receipt create --task t1 --verdict pass_with_risk --review-mode self --evidence e2 --workspace ./my-ai-workspace/.aict
165
- node bin/ai-collab.js receipt accept --id c1 --owner you --workspace ./my-ai-workspace/.aict
166
- node bin/ai-collab.js status --workspace ./my-ai-workspace/.aict
182
+ ai-collab task create --title "Fix the flaky reorder test" --workspace ./my-ai-workspace/.aict
183
+ ai-collab run start --task t1 --command "npm test" --workspace ./my-ai-workspace/.aict
184
+ ai-collab run finish --task t1 --exit 0 --workspace ./my-ai-workspace/.aict
185
+ ai-collab evidence add --task t1 --kind output --summary "npm test -> exit 0, suite green" --workspace ./my-ai-workspace/.aict
186
+ ai-collab receipt create --task t1 --verdict pass_with_risk --review-mode self --evidence e2 --workspace ./my-ai-workspace/.aict
187
+ ai-collab receipt accept --id c1 --owner you --workspace ./my-ai-workspace/.aict
188
+ ai-collab status --workspace ./my-ai-workspace/.aict
167
189
  ```
168
190
 
169
191
  Run that and the receipt prints `guardLevel: L2 (computed)` — exactly the single-tool ceiling described next. (Cite only a bare `--kind note` instead and it computes `L1`, which cannot pass; you need run/output evidence to reach L2.)
170
192
 
171
- The guard level (L0–L4) is **computed from the evidence you cite, never self-asserted**: a single tool tops out at L2 (`pass_with_risk`); a plain `pass` needs an L3+ review from a *different* model family; and L4 needs **both** that cross-family review **and** a rerun reconciled to a recorded run — a reconciled rerun on its own is just the author re-running their own command, so it stays L2. Use `run exec` to actually run a command and record its **real** exit code (`run start/finish` only record an exit you report). **Safety: `run exec` runs a real shell command locally — read the command first, especially if an AI suggested it.** A receipt records *who claimed what* — it is a local audit trail, **not** a cryptographic proof or an independent-execution guarantee (the cross-family family label is self-declared; the tool runs locally and cannot verify it). The full ladder is in `node bin/ai-collab.js --help`.
193
+ The guard level (L0–L4) is **computed from the evidence you cite, never self-asserted**: a single tool tops out at L2 (`pass_with_risk`); a plain `pass` needs an L3+ review from a *different* model family; and L4 needs **both** that cross-family review **and** a rerun reconciled to a recorded run — a reconciled rerun on its own is just the author re-running their own command, so it stays L2. Use `run exec` to actually run a command and record its **real** exit code (`run start/finish` only record an exit you report). **Safety: `run exec` runs a real shell command locally — read the command first, especially if an AI suggested it.** A receipt records *who claimed what* — it is a local audit trail, **not** a cryptographic proof or an independent-execution guarantee (the cross-family family label is self-declared; the tool runs locally and cannot verify it). The full ladder is in `ai-collab --help`.
172
194
 
173
195
  `demo` is a no-setup preview: it writes a throwaway workspace into a new temporary directory so you can see the layout without touching your project. In a strictly read-only environment that temp write can fail; use `init --target <writable-dir>` instead. `init` writes to a directory you choose and is what you keep.
174
196
 
@@ -199,30 +221,24 @@ This is a collaboration operating system, not a prompt collection. What makes it
199
221
 
200
222
  ## Release Status
201
223
 
202
- This project moves through four explicit release states. Being honest about which one we are
203
- in is part of the product: the docs must never describe a step that has not happened yet as if
204
- it already has.
224
+ This project moved through four explicit release states to get here. Being honest about which one
225
+ we are in is part of the product: the docs describe each step as it actually happened, never ahead
226
+ of itself.
205
227
 
206
228
  | State | Meaning | Reached? | What it means for you (plain language) |
207
229
  | --- | --- | --- | --- |
208
230
  | **local candidate** | Built and verified on a local machine; committed to git locally. | Yes | (Superseded.) The earliest state; the source is now on GitHub. |
209
231
  | **publishable candidate** | All release checks green, packed tarball install-smoke passes, version/CHANGELOG prepared. | Yes | (Superseded.) The quality bar was met before the source was pushed. |
210
- | **GitHub source release** | Pushed to the public GitHub repo; CI green on the pushed commit. Not git-tagged yet. | **Current** | You can `git clone` it from GitHub and run `node bin/ai-collab.js`. There is **no** `npm install` and no global `ai-collab` command yet, and no version tag. |
211
- | **npm package** | Published to npm via `npm publish`. | No | Only then does `npm install -g ai-collab-open-system` (the package name) install the global `ai-collab` command so it works as written elsewhere in this README. |
212
-
213
- **The source is on GitHub and CI is green, but it is still not an npm package.** The code,
214
- privacy, and packaging checks (`npm test`, `npm run check`, `npm pack --dry-run`) all pass on the
215
- pushed `main`, and CI is green. What has **not** happened: a git version tag, and the actual
216
- `npm publish`. "Release-ready" is a quality bar, not a release event, so no doc here claims an
217
- `npm install` works today.
232
+ | **GitHub source release** | Pushed to the public GitHub repo; CI green on the pushed commit. | Yes | (Superseded.) The source went public on GitHub with CI green before the package shipped. |
233
+ | **npm package** | Published to npm via `npm publish`. | **Yes** | `npm install -g ai-collab-open-system` installs the global `ai-collab` command, so every command in this README works as written. |
218
234
 
219
- Everywhere this README (or `ai-collab guide`/`--help`) shows a global `ai-collab ...` command or an
220
- `npm install`, read it as **"available after the npm package state"**. Until then the working
221
- command is `node bin/ai-collab.js <args>` from a clone.
235
+ **The package is published to npm as `ai-collab-open-system` (version 0.1.1), and the global
236
+ `ai-collab` command is live.** The code, privacy, and packaging checks (`npm test`, `npm run check`,
237
+ `npm pack --dry-run`) all pass, CI is green, and the package is installable from npm. If you would
238
+ rather run from a clone than install globally, `node bin/ai-collab.js <args>` is the same entry.
222
239
 
223
- The exact remaining steps that move this from the current **GitHub source release** to an **npm
224
- package** (tag, publish, post-publish verification) are listed in
225
- [RELEASE_CHECKLIST.md](./RELEASE_CHECKLIST.md).
240
+ The release steps that took this from a local build to the published **npm package** (and the
241
+ post-publish verification) are recorded in [RELEASE_CHECKLIST.md](./RELEASE_CHECKLIST.md).
226
242
 
227
243
  ## Release Checks
228
244
 
@@ -238,8 +254,23 @@ See [PRODUCT_CONTRACT.md](./PRODUCT_CONTRACT.md), [docs/PUBLIC_BOUNDARY.md](./do
238
254
 
239
255
  This is a **collaboration discipline + state layer**, not a development methodology or an agent framework. It complements, rather than replaces, tools like Spec Kit, BMAD, or an `AGENTS.md`: keep using those to plan and drive the work; this adds the evidence, guard, handoff, and harvest layer that makes a "done" claim checkable and resumable across tools and sessions.
240
256
 
257
+ ## Free Async AI Workflow Snapshot
258
+
259
+ If you want me to diagnose your workflow asynchronously, I’m opening 5 free workflow snapshots.
260
+ Start here: [Request a workflow teardown](https://github.com/aaronyi97/ai-collab-open-system/issues/1).
261
+
241
262
  ## Contact
242
263
 
243
264
  - Security issues: see [SECURITY.md](./SECURITY.md) (private channel).
244
265
  - General: **X/Twitter** [@AaronYiaazw](https://x.com/AaronYiaazw) · **Email** yi19970319@gmail.com
245
266
  - Source & issues: https://github.com/aaronyi97/ai-collab-open-system
267
+
268
+ ---
269
+
270
+ ## Stay in touch
271
+
272
+ - **X / Twitter:** [@AaronYiaazw](https://x.com/AaronYiaazw)
273
+ - **Substack:** [@aaronyi97](https://substack.com/@aaronyi97)
274
+ - **Free Async AI Workflow Snapshot:** [Request a workflow teardown](https://github.com/aaronyi97/ai-collab-open-system/issues/1). Send me one workflow, one failed AI task, or one place where your AI process keeps breaking. I'll tell you where I think it breaks. No live call required.
275
+
276
+ This snapshot is an AI workflow diagnostic. It is not a certified code audit, security audit, or architecture certification.
@@ -4,12 +4,11 @@ Use this before labeling a commit as a public release candidate, and to move it
4
4
  release states. The four states are defined in [README Release Status](./README.md#release-status):
5
5
  **local candidate → publishable candidate → GitHub source release → npm package**.
6
6
 
7
- Current state of `main`: **GitHub source release** (pushed to GitHub, CI green; not git-tagged,
8
- not npm-published). All automated gates are green (`npm test`, `npm run check` — contract +
9
- privacy + pack — and `npm pack --dry-run`) and the changes have been reviewed. "Release-ready" is
10
- a quality bar, not a release event: the source is on GitHub, but it moves to an **npm package**
11
- only when the maintainer performs the tag + publish steps below. The remaining boxes are those
12
- publish actions, which have not been run yet.
7
+ Current state of `main`: **npm package** (published to npm as `ai-collab-open-system@0.1.1`; the
8
+ global `ai-collab` command is live). All automated gates are green (`npm test`, `npm run check` —
9
+ contract + privacy + pack — and `npm pack --dry-run`), the source is on GitHub with CI green, and
10
+ the package is installable from npm. The boxes below are kept as the reusable release procedure
11
+ (and re-verification points) for the next version.
13
12
 
14
13
  ## Required local checks
15
14
 
@@ -31,14 +30,15 @@ and the *installed* `ai-collab` bin runs — not just that the source tree runs.
31
30
  - [ ] `ai-collab guide`
32
31
  - [ ] `ai-collab demo`
33
32
  - [ ] `ai-collab check --workspace <dir>/.aict`
34
- - [ ] (Pre-publish, the documented user path is `node bin/ai-collab.js <cmd>` from a clone; CI also
35
- smoke-tests that source entry. The global `ai-collab` name only works after the npm-package state.)
33
+ - [ ] (The documented user path is the global `ai-collab <cmd>` after `npm install -g
34
+ ai-collab-open-system`; from a clone, `node bin/ai-collab.js <cmd>` is the same entry, and CI
35
+ smoke-tests both the installed bin and the source entry.)
36
36
 
37
37
  ## Product surface
38
38
 
39
39
  - [ ] README first screen shows messy input -> structured result.
40
- - [ ] README Release Status section states the honest current state, and global `ai-collab` /
41
- `npm install` mentions are marked "after publish".
40
+ - [ ] README Release Status section states the honest current state (npm package reached), and the
41
+ global `ai-collab` / `npm install` mentions match the published reality.
42
42
  - [ ] Generated `.aict/START_HERE.md` supports both 10-minute experience and 60-minute setup.
43
43
  - [ ] The flagship case includes `raw-input`, `baseline-output`, `system-run`, `artifacts`, `comparison`, and `next-step`.
44
44
  - [ ] Other cases contain enough detail to run and review, not one-line filler.
@@ -49,9 +49,9 @@ and the *installed* `ai-collab` bin runs — not just that the source tree runs.
49
49
  - [ ] `--force` backs up existing `.aict` content before replacement.
50
50
  - [ ] Adapter files are called adapter guidance, not deep integration.
51
51
  - [ ] No claim says the CLI automatically understands a user's real business.
52
- - [ ] No doc states an unreached release step as already done (no false "published to npm",
53
- no live `npm install ai-collab` as if it works today).
54
- - [ ] CHANGELOG shows the current version as unreleased (GitHub source, CI green; not npm-published) with no fake release date.
52
+ - [ ] No doc states an unreached release step as already done, and no doc claims ahead of reality
53
+ (the docs describe each release state only once it has actually been reached).
54
+ - [ ] CHANGELOG shows the current version's real status (published to npm) with a release date that matches the actual publish.
55
55
  - [ ] No private source material, local personal paths, tokens, email addresses, customer data, or private governance content are present.
56
56
  - [ ] Privacy scan passes on the source tree and generated workspace.
57
57
  - [ ] **Maintainer ran the privacy scan with their LOCAL override active.** The shipped `privacy-manifest.json` deliberately contains only generic, anyone-applies markers — it does NOT list this maintainer's own private directory names (e.g. a personal governance folder or knowledge base), because the manifest itself is published and listing them would leak the very names we are protecting. Those names live ONLY in the gitignored `privacy-scan.local.json` (copy `privacy-scan.local.json.example`, fill in the real folder names under `paths`). Before publishing, confirm that file exists and run `npm run privacy:scan` once with it in place, so any stray reference to your private dirs is caught and blocked from the tarball. Verify (and re-confirm after the run) that `privacy-scan.local.json` is still gitignored and is NOT staged/committed — it must never ship.
@@ -59,20 +59,19 @@ and the *installed* `ai-collab` bin runs — not just that the source tree runs.
59
59
  ## From GitHub source release to npm package
60
60
 
61
61
  These are the steps (and their state gates) that take this repo from earliest build all the way to
62
- a published **npm package**. Each step is also a re-verification point. Steps 1 and 2 (through the
63
- current **GitHub source release**) are done except git-tagging; the remaining work is the tag plus
64
- the npm publish in step 3.
62
+ a published **npm package**. Each step is also a re-verification point. Steps 1–3 are done for
63
+ `0.1.1` (the package is published); re-run this same procedure for the next version.
65
64
 
66
65
  1. **local candidate → publishable candidate** (done)
67
66
  - [x] All "Required local checks", "Fresh-tarball install smoke", and "Safety and honesty" boxes above are green.
68
67
  - [x] Decide the version. If it changes, update `version` in `package.json` and `package-lock.json`, and add a dated CHANGELOG entry.
69
68
  - [x] Working tree clean; no stray `*.tgz` or `*.aict-backup-*` / `.aict.backup-*` artifacts tracked (they are gitignored).
70
- 2. **publishable candidate → GitHub source release** (done except tag)
69
+ 2. **publishable candidate → GitHub source release** (done)
71
70
  - [x] `git push` the release commit to the public GitHub repo.
72
71
  - [x] Confirm CI is green on the pushed commit (matrix + tarball install smoke + CLI smoke).
73
- - [ ] `git tag v<version>` and `git push --tags` (or create a GitHub Release for the tag).
74
- 3. **GitHub source release → npm package**
75
- - [ ] Confirm npm auth (`npm whoami`) and that the `name`/`version` are publishable (not already taken/published).
76
- - [ ] `npm publish` (consider `npm publish --dry-run` first; the package is public, Apache-2.0).
77
- - [ ] Post-publish: in a clean dir, `npm install -g ai-collab-open-system` (the package name) and verify the global `ai-collab init/guide/demo/check` command all work.
78
- - [ ] Only after this step do README/CHANGELOG statements about the global `ai-collab` command and `npm install` become literally true; update the Release Status table to mark **npm package** reached and set the CHANGELOG release date.
72
+ - [x] `git tag v<version>` and `git push --tags` (or create a GitHub Release for the tag).
73
+ 3. **GitHub source release → npm package** (done)
74
+ - [x] Confirm npm auth (`npm whoami`) and that the `name`/`version` are publishable (not already taken/published).
75
+ - [x] `npm publish` (consider `npm publish --dry-run` first; the package is public, Apache-2.0).
76
+ - [x] Post-publish: in a clean dir, `npm install -g ai-collab-open-system` (the package name) and verify the global `ai-collab init/guide/demo/check` command all work.
77
+ - [x] README/CHANGELOG statements about the global `ai-collab` command and `npm install` are now literally true; the Release Status table marks **npm package** reached and the CHANGELOG carries the release date.