ctxflow 1.0.6 → 1.0.7

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
@@ -45,7 +45,7 @@ npm install -g ctxflow
45
45
  ## Quick start
46
46
 
47
47
  ```bash
48
- # 1. Initialise your project (once)
48
+ # 1. Initialise your project (once) — pick your AI agents
49
49
  ctxflow init
50
50
 
51
51
  # 2. Create a feature context before you start coding
@@ -64,12 +64,25 @@ Or just run `ctxflow` for the full interactive menu.
64
64
 
65
65
  ### `ctxflow init`
66
66
 
67
- ```
68
- CLAUDE.md ← AI instructions: stack, architecture, approvals, rules
69
- ```
67
+ Asks which AI agents you use, then creates the right context file(s) for each:
68
+
69
+ | Agent | File |
70
+ |-------|------|
71
+ | Claude Code | `CLAUDE.md` |
72
+ | Codex CLI (OpenAI) | `AGENTS.md` |
73
+ | Cursor | `.cursor/rules/project.md` |
74
+ | GitHub Copilot | `.github/copilot-instructions.md` |
75
+ | Windsurf | `.windsurfrules` |
76
+ | Gemini CLI | `GEMINI.md` |
77
+ | Cline | `.clinerules` |
78
+ | Aider | `CONVENTIONS.md` |
79
+ | Amazon Q | `.amazonq/rules/context.md` |
80
+ | Continue | `.continuerules` |
81
+ | Devin / Kiro / others | `AGENTS.md` |
70
82
 
71
- **CLAUDE.md** is the single source of truth your AI assistant reads on every session.
72
- It contains your stack, architecture overview, approved libraries, and non-negotiable rules.
83
+ Each file contains your stack, architecture overview, approved libraries, and non-negotiable rules — the single source of truth your AI reads every session.
84
+
85
+ You can select multiple agents. Files that share a path (e.g. Codex CLI + Devin both use `AGENTS.md`) are written once.
73
86
 
74
87
  ### `ctxflow new <feature>`
75
88
 
@@ -89,7 +102,7 @@ Run `ctxflow` with no arguments for a full interactive experience:
89
102
  What would you like to do?
90
103
 
91
104
  [1] New feature — scaffold a new feature context
92
- [2] Init project — create CLAUDE.md + /docs structure
105
+ [2] Init project — create AI context file(s) + /docs structure
93
106
  [3] List features — show all existing plans
94
107
  [4] Status — check tasks in a feature plan
95
108
  [5] Help — show usage and documentation
@@ -106,7 +119,7 @@ Press a number key to execute instantly — no Enter needed.
106
119
  | Command | Description |
107
120
  |--------|-------------|
108
121
  | `ctxflow` | Launch interactive menu |
109
- | `ctxflow init` | Scaffold `CLAUDE.md` + `docs/` in the current directory |
122
+ | `ctxflow init` | Select AI agents and scaffold context file(s) |
110
123
  | `ctxflow new <feature>` | Create a feature context under `docs/features/<feature>/` |
111
124
  | `ctxflow list` | List all feature contexts with creation dates |
112
125
  | `ctxflow status <feature>` | Show task completion progress for a feature |
@@ -116,7 +129,7 @@ Press a number key to execute instantly — no Enter needed.
116
129
  ## The workflow
117
130
 
118
131
  ```
119
- 1. ctxflow init → Write CLAUDE.md once. Define your stack, rules, boundaries.
132
+ 1. ctxflow init → Pick your agents. Context files written automatically.
120
133
  2. ctxflow new <feature> → Before every feature: scaffold requirements + plan.
121
134
  3. Fill requirements.md → Context, constraints, acceptance criteria. Your AI reads this.
122
135
  4. Code the feature → AI works with full context. No guessing.
@@ -132,8 +145,8 @@ AI coding assistants are only as useful as the context they receive. Without str
132
145
 
133
146
  | Without ctxflow | With ctxflow |
134
147
  |----------------|--------------|
135
- | Agent guesses at your stack | Agent reads your exact stack from `CLAUDE.md` |
136
- | Unapproved libraries sneak in | `CLAUDE.md` lists exactly what's approved |
148
+ | Agent guesses at your stack | Agent reads your exact stack from the context file |
149
+ | Unapproved libraries sneak in | Context file lists exactly what's approved |
137
150
  | Requirements drift mid-feature | `requirements.md` is the single source of truth |
138
151
  | Agent asks you the same questions every session | Context is version-controlled and always available |
139
152
 
@@ -141,14 +154,21 @@ AI coding assistants are only as useful as the context they receive. Without str
141
154
 
142
155
  ## Works with any AI assistant
143
156
 
144
- ctxflow is **assistant-agnostic**. The generated files are plain Markdown that any AI can read:
145
-
146
- - **Claude** (reads `CLAUDE.md` natively)
147
- - **GitHub Copilot**
148
- - **Cursor**
149
- - **Windsurf**
150
- - **Codeium**
151
- - Any tool that supports reading project files
157
+ ctxflow supports all major AI coding agents out of the box:
158
+
159
+ - **Claude Code** `CLAUDE.md`
160
+ - **Codex CLI (OpenAI)** — `AGENTS.md`
161
+ - **Cursor** — `.cursor/rules/project.md`
162
+ - **GitHub Copilot** — `.github/copilot-instructions.md`
163
+ - **Windsurf** — `.windsurfrules`
164
+ - **Gemini CLI** `GEMINI.md`
165
+ - **Cline** — `.clinerules`
166
+ - **Aider** — `CONVENTIONS.md`
167
+ - **Amazon Q** — `.amazonq/rules/context.md`
168
+ - **Continue** — `.continuerules`
169
+ - **Devin / Kiro / others** — `AGENTS.md`
170
+
171
+ Select one or more during `ctxflow init`. The project is considered initialised as long as any of these files exist.
152
172
 
153
173
  ---
154
174
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAqCA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBvE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA6HA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6CvE"}
@@ -2,11 +2,100 @@ import { join } from 'path';
2
2
  import chalk from 'chalk';
3
3
  import { readTemplate, renderTemplate, writeFile, pathExists } from '../utils/fs.js';
4
4
  import { logger } from '../utils/logger.js';
5
+ import { AGENTS } from '../utils/agents.js';
5
6
  const TODAY = new Date().toISOString().split('T')[0];
6
- async function confirmOverwrite() {
7
+ async function pickAgents() {
8
+ const items = AGENTS.map(a => a.label);
9
+ let cursor = 0;
10
+ const selected = new Set([0]); // Claude Code pre-selected
11
+ let firstRender = true;
12
+ function render() {
13
+ const HEADER = 3;
14
+ const FOOTER = 2;
15
+ const totalLines = HEADER + items.length + FOOTER;
16
+ if (!firstRender) {
17
+ process.stdout.write(`\x1b[${totalLines}A`);
18
+ }
19
+ firstRender = false;
20
+ process.stdout.write('\n');
21
+ process.stdout.write(` ${chalk.cyan('Which AI agents do you use?')} ` +
22
+ `${chalk.gray('Space = toggle · ↑↓ or j/k = navigate · a = all · Enter = confirm')}\n`);
23
+ process.stdout.write('\n');
24
+ for (let i = 0; i < items.length; i++) {
25
+ const cur = i === cursor ? chalk.cyan('❯') : ' ';
26
+ const box = selected.has(i) ? chalk.magenta('◉') : chalk.gray('◯');
27
+ const lbl = i === cursor ? chalk.white(items[i]) : chalk.gray(items[i]);
28
+ process.stdout.write(` ${cur} ${box} ${lbl}\x1b[K\n`);
29
+ }
30
+ process.stdout.write('\n');
31
+ process.stdout.write(` ${chalk.gray('Esc to cancel')}\n`);
32
+ }
33
+ render();
7
34
  return new Promise((resolve) => {
8
35
  const stdin = process.stdin;
9
- process.stdout.write(` ${chalk.yellow('CLAUDE.md already exists.')} ${chalk.white('Overwrite?')}` +
36
+ if (!stdin.isTTY) {
37
+ resolve([0]);
38
+ return;
39
+ }
40
+ stdin.setRawMode(true);
41
+ stdin.resume();
42
+ const cleanup = () => {
43
+ stdin.setRawMode(false);
44
+ stdin.pause();
45
+ stdin.removeListener('data', onData);
46
+ process.stdout.write('\n');
47
+ };
48
+ const onData = (chunk) => {
49
+ const key = chunk.toString();
50
+ if (key === '\x03') {
51
+ cleanup();
52
+ process.exit(0);
53
+ }
54
+ if (key === '\x1b') {
55
+ cleanup();
56
+ resolve(null);
57
+ return;
58
+ }
59
+ if (key === '\x1b[A' || key === 'k') {
60
+ cursor = (cursor - 1 + items.length) % items.length;
61
+ render();
62
+ return;
63
+ }
64
+ if (key === '\x1b[B' || key === 'j') {
65
+ cursor = (cursor + 1) % items.length;
66
+ render();
67
+ return;
68
+ }
69
+ if (key === ' ') {
70
+ if (selected.has(cursor))
71
+ selected.delete(cursor);
72
+ else
73
+ selected.add(cursor);
74
+ render();
75
+ return;
76
+ }
77
+ if (key === 'a' || key === 'A') {
78
+ if (selected.size === items.length)
79
+ selected.clear();
80
+ else
81
+ items.forEach((_, i) => selected.add(i));
82
+ render();
83
+ return;
84
+ }
85
+ if (key === '\r' || key === '\n') {
86
+ if (selected.size === 0)
87
+ return;
88
+ cleanup();
89
+ resolve([...selected].sort((a, b) => a - b));
90
+ }
91
+ };
92
+ stdin.on('data', onData);
93
+ });
94
+ }
95
+ async function confirmOverwrite(_files) {
96
+ return new Promise((resolve) => {
97
+ const stdin = process.stdin;
98
+ process.stdout.write(`\n ${chalk.yellow('Project already initialised.')} ${chalk.white('Overwrite?')}` +
10
99
  chalk.gray(' Enter = yes / Esc = no '));
11
100
  if (!stdin.isTTY) {
12
101
  stdin.once('data', (c) => resolve(c.toString().trim().toLowerCase() === 'y'));
@@ -20,42 +109,62 @@ async function confirmOverwrite() {
20
109
  const key = chunk.toString();
21
110
  process.stdout.write('\n');
22
111
  if (key === '\x03')
23
- process.exit(0); // Ctrl+C → exit
112
+ process.exit(0);
24
113
  if (key === '\x1b') {
25
114
  resolve(false);
26
115
  return;
27
- } // Esc → no
116
+ }
28
117
  if (key === '\r' || key === '\n') {
29
118
  resolve(true);
30
119
  return;
31
- } // Enter → yes
120
+ }
32
121
  if (key.toLowerCase() === 'y') {
33
122
  resolve(true);
34
123
  return;
35
124
  }
36
- resolve(false); // anything else → no
125
+ resolve(false);
37
126
  });
38
127
  });
39
128
  }
40
- // Returns true = completed, false = aborted (Esc / no)
41
129
  export async function initCommand(cwd = process.cwd()) {
42
- const claudePath = join(cwd, 'CLAUDE.md');
43
- if (await pathExists(claudePath)) {
44
- const yes = await confirmOverwrite();
130
+ const indices = await pickAgents();
131
+ if (indices === null) {
132
+ console.log('');
133
+ logger.warn('Aborted — nothing changed.');
134
+ return false;
135
+ }
136
+ // Deduplicate by file path (codex + others both map to AGENTS.md → one file)
137
+ const seen = new Map();
138
+ for (const i of indices) {
139
+ const agent = AGENTS[i];
140
+ if (!seen.has(agent.file))
141
+ seen.set(agent.file, agent);
142
+ }
143
+ const toCreate = [...seen.values()];
144
+ const existing = [];
145
+ for (const agent of toCreate) {
146
+ if (await pathExists(join(cwd, agent.file)))
147
+ existing.push(agent.file);
148
+ }
149
+ if (existing.length > 0) {
150
+ const yes = await confirmOverwrite(existing);
45
151
  if (!yes) {
46
152
  console.log('');
47
153
  logger.warn('Aborted — nothing changed.');
48
154
  return false;
49
155
  }
50
156
  }
51
- const vars = { date: TODAY };
52
- const claudeTpl = await readTemplate('CLAUDE.md.hbs');
53
- await writeFile(claudePath, renderTemplate(claudeTpl, vars));
157
+ console.log('');
158
+ const tpl = await readTemplate('context.md.hbs');
159
+ for (const agent of toCreate) {
160
+ const vars = { agentName: agent.agentName, contextFile: agent.file, date: TODAY };
161
+ await writeFile(join(cwd, agent.file), renderTemplate(tpl, vars));
162
+ logger.file(agent.file);
163
+ }
164
+ console.log('');
54
165
  logger.success('Project initialised!');
55
166
  logger.blank();
56
- logger.file('CLAUDE.md');
57
- logger.blank();
58
- logger.info('Edit CLAUDE.md to fill in your stack, architecture, and approvals.');
167
+ logger.info('Fill in your stack, architecture, and approvals in the context file(s) above.');
59
168
  return true;
60
169
  }
61
170
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAUA,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCxF"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAWA,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCxF"}
@@ -1,12 +1,13 @@
1
1
  import { join } from 'path';
2
2
  import { readTemplate, renderTemplate, writeFile, pathExists } from '../utils/fs.js';
3
3
  import { logger } from '../utils/logger.js';
4
+ import { isProjectInitialised } from '../utils/agents.js';
4
5
  const TODAY = new Date().toISOString().split('T')[0];
5
6
  function slugify(name) {
6
7
  return name.trim().toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
7
8
  }
8
9
  export async function newCommand(featureName, cwd = process.cwd()) {
9
- if (!(await pathExists(join(cwd, 'CLAUDE.md')))) {
10
+ if (!(await isProjectInitialised(cwd))) {
10
11
  logger.error('Project not initialised. Run `ctxflow init` first.');
11
12
  return;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErD,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACvE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAEhD,IAAI,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,qCAAqC,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAE1D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,YAAY,CAAC,qBAAqB,CAAC;QACnC,YAAY,CAAC,aAAa,CAAC;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC,MAAM,EAAG,IAAI,CAAC,CAAC;QACtE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAU,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACvE,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,YAAY,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErD,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACvE,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAEhD,IAAI,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,qCAAqC,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAE1D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,YAAY,CAAC,qBAAqB,CAAC;QACnC,YAAY,CAAC,aAAa,CAAC;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC,MAAM,EAAG,IAAI,CAAC,CAAC;QACtE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAU,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACvE,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,YAAY,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,UAAU,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AAC9E,CAAC"}
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ program
15
15
  .configureOutput({ outputError: () => { } }); // suppress commander's raw error lines
16
16
  program
17
17
  .command('init')
18
- .description('Create CLAUDE.md and docs/ structure in the current project')
18
+ .description('Select AI agents and create context file(s) in the current project')
19
19
  .action(async () => {
20
20
  showBanner();
21
21
  await initCommand();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ # {{agentName}}
2
+
3
+ > This file is read by AI coding assistants to understand the project context. Keep it accurate and up to date.
4
+
5
+ ## Stack
6
+
7
+ - Language: <!-- e.g. Java 21, Python 3.12, Go 1.23, Node.js 22 -->
8
+ - Framework: <!-- e.g. Spring Boot, Django, Gin, Express -->
9
+ - Testing: <!-- e.g. JUnit 5, pytest, Go test, Vitest -->
10
+
11
+ ## Project structure
12
+
13
+ ```
14
+ /
15
+ ├── src/ # Source code
16
+ ├── tests/ # Test files
17
+ ├── docs/
18
+ │ └── features/ # Feature context (managed by ctxflow)
19
+ └── {{contextFile}}
20
+ ```
21
+
22
+ ## Architecture
23
+
24
+ <!-- Describe the high-level architecture: main components, data flow, key boundaries.
25
+ Update this when structure changes. -->
26
+
27
+ ## Approvals
28
+
29
+ <!-- Authoritative list of approved dependencies. Check before adding anything new. -->
30
+
31
+ | Library / Tool | Version | Purpose |
32
+ |---------------|---------|---------|
33
+ | | | |
34
+
35
+ ## Rules (non-negotiable)
36
+
37
+ 1. Read `docs/features/<feature>/requirements.md` BEFORE implementing any feature.
38
+ 2. Write tests before marking a task as complete.
39
+ 3. Check **## Approvals** before adding any new dependency.
40
+ 4. Keep this file updated when the stack or rules change.
41
+
42
+ ## What NOT to do
43
+
44
+ - Do NOT add libraries not in **## Approvals** without updating it first.
45
+ - Do NOT commit to main/master directly — use feature branches and code review.
46
+ - Do NOT skip requirements.md when starting a feature.
47
+ - Do NOT change architecture without updating **## Architecture** in this file.
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"AAuJA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB9C;AA+DD,wBAAgB,QAAQ,IAAI,IAAI,CAU/B"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"AAwJA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB9C;AA8DD,wBAAgB,QAAQ,IAAI,IAAI,CAU/B"}
package/dist/ui/menu.js CHANGED
@@ -4,11 +4,12 @@ import { initCommand } from '../commands/init.js';
4
4
  import { newCommand } from '../commands/new.js';
5
5
  import { listCommand } from '../commands/list.js';
6
6
  import { statusCommand } from '../commands/status.js';
7
- import { readDir, pathExists } from '../utils/fs.js';
7
+ import { readDir } from '../utils/fs.js';
8
+ import { isProjectInitialised } from '../utils/agents.js';
8
9
  import { join } from 'path';
9
10
  const MAIN_CHOICES = [
10
11
  { key: '1', label: 'New feature', desc: '— scaffold a new feature context', value: 'new' },
11
- { key: '2', label: 'Init project', desc: '— create CLAUDE.md + /docs structure', value: 'init' },
12
+ { key: '2', label: 'Init project', desc: '— create AI context file(s) + /docs structure', value: 'init' },
12
13
  { key: '3', label: 'List features', desc: '— show all existing plans', value: 'list' },
13
14
  { key: '4', label: 'Status', desc: '— check tasks in a feature plan', value: 'status' },
14
15
  { key: '5', label: 'Help', desc: '— show usage and documentation', value: 'help' },
@@ -177,9 +178,8 @@ async function handleInit() {
177
178
  }
178
179
  async function handleStatus() {
179
180
  const cwd = process.cwd();
180
- const claudePath = join(cwd, 'CLAUDE.md');
181
181
  const featuresDir = join(cwd, 'docs', 'features');
182
- if (!(await pathExists(claudePath))) {
182
+ if (!(await isProjectInitialised(cwd))) {
183
183
  console.log(chalk.yellow(' ⚠ ctxflow not initialised here. Run `ctxflow init` first.'));
184
184
  return 'done';
185
185
  }
@@ -212,7 +212,7 @@ export function showHelp() {
212
212
  console.log(chalk.cyan(' Usage'));
213
213
  console.log('');
214
214
  console.log(` ${chalk.magenta('ctxflow')} ${chalk.gray('→ show interactive menu')}`);
215
- console.log(` ${chalk.magenta('ctxflow init')} ${chalk.gray('→ create CLAUDE.md + docs/ structure')}`);
215
+ console.log(` ${chalk.magenta('ctxflow init')} ${chalk.gray('→ select AI agents and create context file(s)')}`);
216
216
  console.log(` ${chalk.magenta('ctxflow new')} ${chalk.cyan('<feature>')} ${chalk.gray('→ scaffold docs/features/<feature>/')}`);
217
217
  console.log(` ${chalk.magenta('ctxflow list')} ${chalk.gray('→ list all features')}`);
218
218
  console.log(` ${chalk.magenta('ctxflow status')} ${chalk.cyan('<feature>')} ${chalk.gray('→ show task progress for a feature')}`);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface AgentConfig {
2
+ id: string;
3
+ label: string;
4
+ file: string;
5
+ agentName: string;
6
+ }
7
+ export declare const AGENTS: AgentConfig[];
8
+ export declare const ALL_CONTEXT_FILES: string[];
9
+ export declare function isProjectInitialised(cwd: string): Promise<boolean>;
10
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,MAAM,EAAE,WAAW,EAY/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAA0C,CAAC;AAEjF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKxE"}
@@ -0,0 +1,21 @@
1
+ import { join } from 'path';
2
+ import { pathExists } from './fs.js';
3
+ export const AGENTS = [
4
+ { id: 'claude', label: 'Claude Code', file: 'CLAUDE.md', agentName: 'CLAUDE.md' },
5
+ { id: 'codex', label: 'Codex CLI (OpenAI)', file: 'AGENTS.md', agentName: 'AGENTS.md' },
6
+ { id: 'cursor', label: 'Cursor', file: '.cursor/rules/project.md', agentName: 'Cursor Rules' },
7
+ { id: 'copilot', label: 'GitHub Copilot', file: '.github/copilot-instructions.md', agentName: 'GitHub Copilot' },
8
+ { id: 'windsurf', label: 'Windsurf', file: '.windsurfrules', agentName: 'Windsurf' },
9
+ { id: 'gemini', label: 'Gemini CLI', file: 'GEMINI.md', agentName: 'GEMINI.md' },
10
+ { id: 'cline', label: 'Cline', file: '.clinerules', agentName: 'Cline' },
11
+ { id: 'aider', label: 'Aider', file: 'CONVENTIONS.md', agentName: 'CONVENTIONS.md' },
12
+ { id: 'amazonq', label: 'Amazon Q', file: '.amazonq/rules/context.md', agentName: 'Amazon Q' },
13
+ { id: 'continue', label: 'Continue', file: '.continuerules', agentName: 'Continue' },
14
+ { id: 'others', label: 'Devin / Kiro / others', file: 'AGENTS.md', agentName: 'AGENTS.md' },
15
+ ];
16
+ export const ALL_CONTEXT_FILES = [...new Set(AGENTS.map(a => a.file))];
17
+ export async function isProjectInitialised(cwd) {
18
+ const checks = await Promise.all(ALL_CONTEXT_FILES.map(f => pathExists(join(cwd, f))));
19
+ return checks.some(Boolean);
20
+ }
21
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AASrC,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,EAAE,QAAQ,EAAI,KAAK,EAAE,aAAa,EAAY,IAAI,EAAE,WAAW,EAAwB,SAAS,EAAE,WAAW,EAAO;IACxH,EAAE,EAAE,EAAE,OAAO,EAAK,KAAK,EAAE,oBAAoB,EAAM,IAAI,EAAE,WAAW,EAAwB,SAAS,EAAE,WAAW,EAAO;IACzH,EAAE,EAAE,EAAE,QAAQ,EAAI,KAAK,EAAE,QAAQ,EAAkB,IAAI,EAAE,0BAA0B,EAAS,SAAS,EAAE,cAAc,EAAI;IACzH,EAAE,EAAE,EAAE,SAAS,EAAG,KAAK,EAAE,gBAAgB,EAAU,IAAI,EAAE,iCAAiC,EAAE,SAAS,EAAE,gBAAgB,EAAE;IACzH,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAgB,IAAI,EAAE,gBAAgB,EAAmB,SAAS,EAAE,UAAU,EAAQ;IACzH,EAAE,EAAE,EAAE,QAAQ,EAAI,KAAK,EAAE,YAAY,EAAc,IAAI,EAAE,WAAW,EAAwB,SAAS,EAAE,WAAW,EAAO;IACzH,EAAE,EAAE,EAAE,OAAO,EAAK,KAAK,EAAE,OAAO,EAAmB,IAAI,EAAE,aAAa,EAAsB,SAAS,EAAE,OAAO,EAAW;IACzH,EAAE,EAAE,EAAE,OAAO,EAAK,KAAK,EAAE,OAAO,EAAmB,IAAI,EAAE,gBAAgB,EAAmB,SAAS,EAAE,gBAAgB,EAAE;IACzH,EAAE,EAAE,EAAE,SAAS,EAAG,KAAK,EAAE,UAAU,EAAgB,IAAI,EAAE,2BAA2B,EAAQ,SAAS,EAAE,UAAU,EAAQ;IACzH,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAgB,IAAI,EAAE,gBAAgB,EAAmB,SAAS,EAAE,UAAU,EAAQ;IACzH,EAAE,EAAE,EAAE,QAAQ,EAAI,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAwB,SAAS,EAAE,WAAW,EAAO;CACzH,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW;IACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ctxflow",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Context scaffolding for AI agent-driven development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,9 +24,6 @@
24
24
  "type": "git",
25
25
  "url": "https://github.com/powfuu/ctxflow.git"
26
26
  },
27
- "bugs": {
28
- "url": "https://github.com/powfuu/ctxflow/issues"
29
- },
30
27
  "files": [
31
28
  "bin",
32
29
  "dist"