nikos 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,15 @@
4
4
 
5
5
  <p align="center"><b>Spec-driven development for AI coding agents</b></p>
6
6
 
7
+ I'm [@nikovijay](https://x.com/nikovijay), a Product Director with 20 years
8
+ of experience in software delivery. nikOS is my personal framework for
9
+ building products with AI coding agents. I'm sharing it to help others get
10
+ started with agentic programming practices. For where I think this is going,
11
+ see my thoughts on
12
+ [the software factory of the near future](https://www.nikovijay.com/software-factory).
13
+
14
+ ## What it does
15
+
7
16
  AI coding agents are quick to say "done". nikOS makes them prove it. Your
8
17
  story map, plans and acceptance criteria live in your repo as plain files,
9
18
  each criterion is a Cucumber scenario that runs as a test, and a story can't
@@ -11,6 +20,10 @@ be marked done until its scenarios pass. Your agent follows a named playbook
11
20
  for each request instead of improvising, and every decision is written down
12
21
  where the next person (or agent) can find it.
13
22
 
23
+ It works with Claude Code, Codex and Cursor, and brings spec-driven
24
+ development, behaviour-driven development (BDD) with Gherkin and Cucumber,
25
+ user story mapping and acceptance criteria to agentic coding.
26
+
14
27
  > Early work in progress. Open source, MIT licensed.
15
28
 
16
29
  ## Try it in 10 minutes
@@ -80,20 +93,6 @@ Every file is plain text you can read, review and diff. The full format:
80
93
  | `nikos decisions "<q>"` | Quote the decisions about a topic or story |
81
94
  | `nikos bet new <id>` | Write a time-boxed bet card linked to its stories |
82
95
 
83
- ## Working with a team: intentdocs
84
-
85
- When you want a visual story map, reviews and a team around the same specs,
86
- [intentdocs](https://www.intentdocs.com) reads the same `intent/` folder:
87
-
88
- ```bash
89
- npx intentdocs push # upload intent/ and link this repo
90
- npx intentdocs pull # bring web edits back, shown as diffs first
91
- ```
92
-
93
- The repo stays the source of truth for specs and plans; intentdocs runs the
94
- build and acceptance steps. What maps to what:
95
- [docs/intentdocs-mapping.md](docs/intentdocs-mapping.md).
96
-
97
96
  ## Links
98
97
 
99
98
  - Home: https://nikos.tools
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nikos",
3
- "version": "0.0.3",
4
- "description": "nikOS \u2014 an open-source agent skill stack for spec-driven development. Specs, plans and Cucumber features live in your repo.",
3
+ "version": "0.0.5",
4
+ "description": "Spec-driven development for AI coding agents: story maps, Gherkin acceptance criteria and a done gate for Claude Code, Codex and Cursor",
5
5
  "license": "MIT",
6
6
  "author": "Niko Vijay",
7
7
  "homepage": "https://nikos.tools",
@@ -42,5 +42,19 @@
42
42
  "@cucumber/messages": "^26.0.1",
43
43
  "ajv": "^8.17.1",
44
44
  "yaml": "^2.6.1"
45
- }
45
+ },
46
+ "keywords": [
47
+ "spec-driven-development",
48
+ "ai-coding-agents",
49
+ "agentic-coding",
50
+ "claude-code",
51
+ "codex",
52
+ "cursor",
53
+ "bdd",
54
+ "gherkin",
55
+ "cucumber",
56
+ "acceptance-criteria",
57
+ "user-story-mapping",
58
+ "agent-skills"
59
+ ]
46
60
  }
@@ -31,9 +31,23 @@ Read the story's `.feature` file, `intent/constitution.md` and
31
31
  - **Accurate:** it agrees with the constitution (who it's for, the problem,
32
32
  the proof) and with every decision in `decisions.md`. Name the line it
33
33
  contradicts.
34
- - **Responsible:** where the story touches personal data, money, safety,
35
- outreach to real people or accessibility, a scenario or the description
36
- covers it. A story that touches none of these passes and says so.
34
+ - **Responsible:** for each area below that the story touches, every item
35
+ in its row is covered by a scenario (or, where the row says so, stated in
36
+ the description). Any missing item fails Responsible: name the item and give
37
+ the scenario to add. A story that touches none of these areas passes and
38
+ says so.
39
+
40
+ | Area | The story must cover |
41
+ | --- | --- |
42
+ | Money | A scenario for invalid amounts (zero, negative, more decimals than the currency has); a scenario for how amounts round; the currency, in the description or a scenario |
43
+ | Personal data | Who can see it, in the description or a scenario; a scenario for deleting it |
44
+ | Safety (health, physical harm, locks, children) | A scenario for what happens when it fails, and what the user sees then |
45
+ | Outreach to real people | A scenario for consent or opting out; nothing is sent without the person's sign-off |
46
+ | A screen people use | A scenario or description line saying it works by keyboard and with a screen reader |
47
+
48
+ For example, a story that charges a card but has no scenario for a zero or
49
+ negative amount reports:
50
+ `Responsible: fail. Money: no scenario for invalid amounts. Fix: add "AC3 — A zero or negative amount is refused".`
37
51
 
38
52
  ## 3. Fill small gaps, ask about big ones
39
53
 
@@ -6,7 +6,7 @@ scenarios pass, not that you say so.
6
6
  1. Run `nikos next` to pick the story, or use the story id the person named.
7
7
  2. Check the story with the clear skill, and stop if any of the five checks fails.
8
8
  3. Run `nikos decisions interface`, then `nikos plan new <story-id>` and write the approach into the plan file it creates. Reuse every interface decision the story touches, and cite each in the step that uses it as `Reuses: <decision title> (intent/decisions.md:<lines>)`. If the story needs to change one, stop and ask.
9
- 4. Run `nikos state set <story-id> in_progress`.
9
+ 4. Run `nikos state set <story-id> in_progress --by <agent>`, where `<agent>` names your tool (`claude-code`, `codex`, `cursor`), never a person, so `state.yaml` shows who is building it.
10
10
  5. Implement the story, with a step definition for each step in its scenarios (see the verify skill).
11
11
  6. Run `nikos verify <story-id>`, then `nikos verify` to check every other story still passes, and keep the output.
12
12
  7. Record each decision you made with `nikos decide "<title>" --story <story-id> --why "<why>"`. Add `--category interface` for anything a later story must keep to: command syntax, output format, API shape.