citadel-ai 10.3.0 → 10.4.0
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/GETTING-STARTED.md +6 -5
- package/README.fr.md +6 -4
- package/README.md +6 -4
- package/dist/cli/ide-rules.d.ts +2 -0
- package/dist/cli/ide-rules.js +124 -99
- package/dist/cli/ide-rules.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +11 -7
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run.js +1 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/skills.d.ts +1 -0
- package/dist/cli/skills.js +241 -0
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/update.js +8 -7
- package/dist/cli/update.js.map +1 -1
- package/dist/core/orchestrator.d.ts +5 -0
- package/dist/core/orchestrator.js +119 -3
- package/dist/core/orchestrator.js.map +1 -1
- package/package.json +2 -2
package/GETTING-STARTED.md
CHANGED
|
@@ -17,7 +17,7 @@ Done. Open your IDE and type `/citadel-help` or just start chatting.
|
|
|
17
17
|
|
|
18
18
|
**Step 1: Open your AI IDE**
|
|
19
19
|
|
|
20
|
-
Open Cursor, Antigravity, Claude Code, or Windsurf — whichever you use to vibecode.
|
|
20
|
+
Open Codex, Cursor, Antigravity, Claude Code, or Windsurf — whichever you use to vibecode.
|
|
21
21
|
|
|
22
22
|
**Step 2: Open or create your project folder**
|
|
23
23
|
|
|
@@ -51,9 +51,10 @@ You'll see something like:
|
|
|
51
51
|
```
|
|
52
52
|
✅ CITADEL installed! 42 agents ready.
|
|
53
53
|
|
|
54
|
+
AGENTS.md Codex rules (lean, phased loading)
|
|
54
55
|
.citadel/
|
|
55
56
|
├── agents/ 42 full agent personas (reference)
|
|
56
|
-
├── teams/
|
|
57
|
+
├── teams/ 12 team files and delivery pods (loaded per phase by IDE)
|
|
57
58
|
├── specs/ PRD, ADR, Security, Data Model, Growth
|
|
58
59
|
├── memory/ Session state (gitignored)
|
|
59
60
|
└── gates/ Gate progress (gitignored)
|
|
@@ -74,7 +75,7 @@ Copy-paste this message into your AI chat:
|
|
|
74
75
|
```
|
|
75
76
|
I want to set up CITADEL in this project.
|
|
76
77
|
Please run this command in the terminal: npx citadel-ai init
|
|
77
|
-
Then read the CLAUDE.md
|
|
78
|
+
Then read the AGENTS.md, CLAUDE.md, or GEMINI.md file that was created and follow its instructions.
|
|
78
79
|
```
|
|
79
80
|
|
|
80
81
|
Your AI IDE will run the command for you and set everything up.
|
|
@@ -113,13 +114,13 @@ Not for IDE usage. Your IDE already has its own AI. CITADEL just gives it struct
|
|
|
113
114
|
The API key is only needed if you want to use the CLI (`npx citadel-ai run`), which most people don't need.
|
|
114
115
|
|
|
115
116
|
**Does this work with [my IDE]?**
|
|
116
|
-
If your IDE reads project files for context (most AI IDEs do), yes. CITADEL creates rule files for Claude Code, Cursor, Antigravity, and Windsurf automatically.
|
|
117
|
+
If your IDE reads project files for context (most AI IDEs do), yes. CITADEL creates rule files for Codex, Claude Code, Cursor, Antigravity, and Windsurf automatically.
|
|
117
118
|
|
|
118
119
|
**Can I use this with an existing project?**
|
|
119
120
|
Yes. Run `npx citadel-ai init` in your project folder. It won't modify your existing code — it only adds CITADEL files.
|
|
120
121
|
|
|
121
122
|
**What if I want to remove CITADEL?**
|
|
122
|
-
Delete the `.citadel/` folder and the rule files (CLAUDE.md, GEMINI.md, .cursorrules, .windsurfrules). Your project code is untouched.
|
|
123
|
+
Delete the `.citadel/` folder and the rule files (AGENTS.md, CLAUDE.md, GEMINI.md, .cursorrules, .windsurfrules). Your project code is untouched.
|
|
123
124
|
|
|
124
125
|
**Is this free?**
|
|
125
126
|
Yes. MIT license. Free forever.
|
package/README.fr.md
CHANGED
|
@@ -11,7 +11,7 @@ CITADEL aide les vibe coders sérieux à construire avec de la structure, de la
|
|
|
11
11
|
npx citadel-ai init
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
Fonctionne avec **Claude Code** · **Cursor** · **Antigravity** · **Windsurf**
|
|
14
|
+
Fonctionne avec **Codex** · **Claude Code** · **Cursor** · **Antigravity** · **Windsurf**
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -100,11 +100,11 @@ Décisions, erreurs et contexte persistent dans `.citadel/memory/`. La session s
|
|
|
100
100
|
|
|
101
101
|
### Option 1 : Copie-colle dans ton chat IA (le plus simple)
|
|
102
102
|
|
|
103
|
-
Ouvre ton IDE IA (Cursor, Antigravity, Claude Code, Windsurf) et colle ça :
|
|
103
|
+
Ouvre ton IDE IA (Codex, Cursor, Antigravity, Claude Code, Windsurf) et colle ça :
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
Lance cette commande dans le terminal : npx citadel-ai init
|
|
107
|
-
Puis lis le fichier CLAUDE.md ou GEMINI.md qui a été créé et suis ses instructions.
|
|
107
|
+
Puis lis le fichier AGENTS.md, CLAUDE.md ou GEMINI.md qui a été créé et suis ses instructions.
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Ton IA fait le reste. Décris ce que tu veux construire.
|
|
@@ -129,6 +129,7 @@ Voir [GETTING-STARTED.md](GETTING-STARTED.md) — un guide pas-à-pas sans aucun
|
|
|
129
129
|
|
|
130
130
|
```
|
|
131
131
|
ton-projet/
|
|
132
|
+
├── AGENTS.md ← Chargé auto par Codex
|
|
132
133
|
├── CLAUDE.md ← Chargé auto par Claude Code
|
|
133
134
|
├── GEMINI.md ← Chargé auto par Antigravity
|
|
134
135
|
├── .cursorrules ← Chargé auto par Cursor
|
|
@@ -137,7 +138,7 @@ ton-projet/
|
|
|
137
138
|
├── .cursor/commands/
|
|
138
139
|
├── .citadel/
|
|
139
140
|
│ ├── agents/ ← 42 personas d'agents complètes (référence)
|
|
140
|
-
│ ├── teams/ ←
|
|
141
|
+
│ ├── teams/ ← 12 fichiers équipe et pods de delivery (chargement par phase)
|
|
141
142
|
│ ├── specs/ ← PRD, ADR, Sécurité, Data Model, Growth
|
|
142
143
|
│ ├── memory/ ← État persistant (gitignored)
|
|
143
144
|
│ └── gates/ ← Suivi des gates (gitignored)
|
|
@@ -149,6 +150,7 @@ Tout est installé. L'IDE ne lit que ce qui est contextuel.
|
|
|
149
150
|
|-----|-----------------|
|
|
150
151
|
| Claude Code | `/citadel-help` |
|
|
151
152
|
| Cursor | `/citadel-help` |
|
|
153
|
+
| Codex | Commence à chatter (`AGENTS.md` est chargé) |
|
|
152
154
|
| Antigravity | Commence à chatter |
|
|
153
155
|
| Windsurf | Commence à chatter |
|
|
154
156
|
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ CITADEL helps serious vibe coders build with structure, memory, and review — s
|
|
|
11
11
|
npx citadel-ai init
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
Works with **Claude Code** · **Cursor** · **Antigravity** · **Windsurf**
|
|
14
|
+
Works with **Codex** · **Claude Code** · **Cursor** · **Antigravity** · **Windsurf**
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -100,11 +100,11 @@ Decisions, errors, and context persist in `.citadel/memory/`. Next session picks
|
|
|
100
100
|
|
|
101
101
|
### Option 1: Copy-paste into your AI chat (easiest)
|
|
102
102
|
|
|
103
|
-
Open your AI IDE (Cursor, Antigravity, Claude Code, Windsurf) and paste this:
|
|
103
|
+
Open your AI IDE (Codex, Cursor, Antigravity, Claude Code, Windsurf) and paste this:
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
Run this command in the terminal: npx citadel-ai init
|
|
107
|
-
Then read the CLAUDE.md or GEMINI.md file that was created and follow its instructions.
|
|
107
|
+
Then read the AGENTS.md, CLAUDE.md, or GEMINI.md file that was created and follow its instructions.
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Your AI does the rest. Start describing what you want to build.
|
|
@@ -127,6 +127,7 @@ This creates:
|
|
|
127
127
|
|
|
128
128
|
```
|
|
129
129
|
your-project/
|
|
130
|
+
├── AGENTS.md ← Auto-loaded by Codex
|
|
130
131
|
├── CLAUDE.md ← Auto-loaded by Claude Code
|
|
131
132
|
├── GEMINI.md ← Auto-loaded by Antigravity
|
|
132
133
|
├── .cursorrules ← Auto-loaded by Cursor
|
|
@@ -135,7 +136,7 @@ your-project/
|
|
|
135
136
|
├── .cursor/commands/
|
|
136
137
|
├── .citadel/
|
|
137
138
|
│ ├── agents/ ← 42 full agent personas (reference)
|
|
138
|
-
│ ├── teams/ ←
|
|
139
|
+
│ ├── teams/ ← 12 team files and delivery pods (phased loading by IDE)
|
|
139
140
|
│ ├── vault/ ← Live project memory (AI reads + writes)
|
|
140
141
|
│ │ ├── PROGRESS.md Phase, gates, what's done/next
|
|
141
142
|
│ │ ├── CONTEXT_SNAPSHOT.md Resume point for next session
|
|
@@ -154,6 +155,7 @@ Everything is installed. The IDE reads only what's contextual.
|
|
|
154
155
|
|-----|-------------|
|
|
155
156
|
| Claude Code | `/citadel-help` |
|
|
156
157
|
| Cursor | `/citadel-help` |
|
|
158
|
+
| Codex | Start chatting (`AGENTS.md` is loaded) |
|
|
157
159
|
| Antigravity | Just start chatting |
|
|
158
160
|
| Windsurf | Just start chatting |
|
|
159
161
|
|
package/dist/cli/ide-rules.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export declare const TEAM_FILE_COUNT = 12;
|
|
1
2
|
declare function writeTeamFiles(citadelPath: string): void;
|
|
2
3
|
export declare function installClaudeCode(projectPath: string): void;
|
|
3
4
|
export declare function installCursor(projectPath: string): void;
|
|
4
5
|
export declare function installAntigravity(projectPath: string): void;
|
|
5
6
|
export declare function installWindsurf(projectPath: string): void;
|
|
7
|
+
export declare function installCodex(projectPath: string): void;
|
|
6
8
|
export declare function installAllIDEs(projectPath: string): void;
|
|
7
9
|
export { writeTeamFiles };
|
package/dist/cli/ide-rules.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { AGENT_REGISTRY, getAgentCount, getAgentsByLevel } from '../agents/registry.js';
|
|
7
|
+
export const TEAM_FILE_COUNT = 12;
|
|
7
8
|
// ── Compact agent line (minimal tokens) ──
|
|
8
9
|
function agentLine(a) {
|
|
9
10
|
return `- ${a.icon} **${a.name}** (${a.title}) — "${a.philosophy}"`;
|
|
@@ -19,126 +20,94 @@ function buildTeamFile(title, agents) {
|
|
|
19
20
|
}
|
|
20
21
|
return content;
|
|
21
22
|
}
|
|
22
|
-
// ── Master rules (
|
|
23
|
+
// ── Master rules (compact by default, with stronger workflow control) ──
|
|
23
24
|
function buildRulesContent() {
|
|
24
25
|
const c = getAgentCount();
|
|
25
26
|
const csuite = getAgentsByLevel('c-suite');
|
|
26
|
-
// Only list agent names + roles (no full details)
|
|
27
|
-
const makers = getAgentsByLevel('maker');
|
|
28
|
-
const checkers = getAgentsByLevel('checker');
|
|
29
27
|
let rosterCompact = '### C-Suite\n';
|
|
30
28
|
for (const a of csuite)
|
|
31
29
|
rosterCompact += agentLine(a) + '\n';
|
|
32
|
-
rosterCompact += '\n### Makers (20)\n';
|
|
33
|
-
for (const a of makers)
|
|
34
|
-
rosterCompact += `- ${a.icon} ${a.name} (${a.title})\n`;
|
|
35
|
-
rosterCompact += '\n### Checkers (16)\n';
|
|
36
|
-
for (const a of checkers)
|
|
37
|
-
rosterCompact += `- ${a.icon} ${a.name} (${a.title})\n`;
|
|
38
30
|
return `# 🏰 CITADEL — ${c.total}-Agent AI Development Framework
|
|
39
31
|
|
|
40
|
-
You are ATLAS, the Orchestrator. You manage a
|
|
32
|
+
You are ATLAS, the Orchestrator. You manage a disciplined multi-agent software team.
|
|
41
33
|
When acting as an agent, state who you are: "${'\u2699\uFE0F'} UNCLE BOB (Backend Engineer): ..."
|
|
42
34
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
1. **Maker
|
|
46
|
-
2. **
|
|
47
|
-
3. **
|
|
48
|
-
4. **
|
|
49
|
-
5. **
|
|
50
|
-
6. **
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
35
|
+
## NON-NEGOTIABLES
|
|
36
|
+
|
|
37
|
+
1. **Maker != Checker** — builders never self-approve.
|
|
38
|
+
2. **Implementation plan first** — LINUS writes or challenges the plan before makers start.
|
|
39
|
+
3. **CTO coherence review before done** — LINUS checks architecture and regression risk after maker/checker work.
|
|
40
|
+
4. **CISO veto** — BRUCE can block shipping. No override.
|
|
41
|
+
5. **Questions before specs** — never draft specs before user answers.
|
|
42
|
+
6. **Read less, not more** — load only the files needed for the current task.
|
|
43
|
+
7. **Return a consolidated answer** — internal maker/checker/CTO debate happens before talking to the user.
|
|
44
|
+
8. **Progressive disclosure inside skills** — read a skill's Section Index first, then jump only to the relevant sections.
|
|
45
|
+
|
|
46
|
+
## MINIMAL LOADING
|
|
47
|
+
|
|
48
|
+
Never preload \`.citadel/agents/\` or every team file.
|
|
49
|
+
Read the smallest relevant set:
|
|
50
|
+
|
|
51
|
+
| Situation | Read these files | Purpose |
|
|
52
|
+
|-----------|------------------|---------|
|
|
53
|
+
| Always first | \`.citadel/skills/rules_essential.md\` + \`.citadel/vault/PROGRESS.md\` | Core rules + current phase |
|
|
54
|
+
| Need session resume | \`.citadel/vault/CONTEXT_SNAPSHOT.md\` | Only if PROGRESS is not enough |
|
|
55
|
+
| Need past decisions | \`.citadel/vault/DECISIONS.md\`, \`.citadel/vault/ARCHITECTURE.md\` | Only if task touches those choices |
|
|
56
|
+
| Inception | \`.citadel/teams/c-suite.md\` | C-level questioning and scope shaping |
|
|
57
|
+
| Pre-design | \`.citadel/teams/cpo-makers.md\` + \`skills/skills_uiux.md\` + \`skills/skills_visual_design.md\` | Product and design direction |
|
|
58
|
+
| Pre-build / planning | \`.citadel/teams/cto-makers.md\` + \`skills/skills_implementation_plan.md\` | Implementation plan before coding |
|
|
59
|
+
| Build frontend/UI | \`.citadel/teams/frontend-pod.md\` + \`skills/skills_frontend.md\` + \`skills/skills_uiux.md\` + \`skills/skills_visual_design.md\` + \`skills/skills_design_system.md\` + \`skills/skills_implementation_plan.md\` | Design + implementation |
|
|
60
|
+
| Build backend | \`.citadel/teams/backend-pod.md\` + \`skills/skills_backend.md\` + \`skills/skills_data.md\` + \`skills/skills_implementation_plan.md\` | Architecture + implementation |
|
|
61
|
+
| Build mobile/PWA | \`.citadel/teams/cto-makers.md\` + \`skills/skills_mobile.md\` + \`skills/skills_uiux.md\` + \`skills/skills_visual_design.md\` + \`skills/skills_implementation_plan.md\` | Mobile delivery |
|
|
62
|
+
| Review / coherence | Relevant pod + \`skills/skills_change_safety.md\` + relevant domain skill | Checker review + CTO coherence |
|
|
63
|
+
| Security | \`.citadel/teams/ciso-all.md\` + \`skills/skills_security.md\` + \`skills/skills_change_safety.md\` | Security and release risk |
|
|
64
|
+
| Ship | \`.citadel/teams/cto-makers.md\` + \`.citadel/teams/ciso-all.md\` | Deploy + final sign-off |
|
|
65
|
+
|
|
66
|
+
When you open a skill file, read its **Section Index** first and jump only to the sections you need.
|
|
67
|
+
|
|
68
|
+
## AGENT MAP
|
|
68
69
|
|
|
69
70
|
${rosterCompact}
|
|
70
71
|
|
|
71
|
-
##
|
|
72
|
-
|
|
73
|
-
⚠️ DO NOT read all files at once. Load ONLY what you need per phase:
|
|
74
|
-
|
|
75
|
-
| Phase | Read these files | Purpose |
|
|
76
|
-
|-------|-----------------|---------|
|
|
77
|
-
| ALWAYS | \`.citadel/skills/rules_essential.md\` | P0 rules — architecture, code quality, security |
|
|
78
|
-
| Inception (Gate 0) | \`.citadel/teams/c-suite.md\` | C-levels ask questions, then draft specs |
|
|
79
|
-
| Pre-Design (Gate 1) | \`.citadel/teams/cpo-makers.md\` + \`skills/skills_uiux.md\` | Product + UX |
|
|
80
|
-
| Pre-Build (Gate 2) | \`.citadel/teams/cto-makers.md\` + \`skills/skills_backend.md\` | Architecture |
|
|
81
|
-
| Build backend | \`.citadel/teams/cto-makers.md\` + \`skills/skills_backend.md\` + \`skills/skills_data.md\` | Backend + data |
|
|
82
|
-
| Build frontend | \`.citadel/teams/cto-makers.md\` + \`skills/skills_frontend.md\` + \`skills/skills_uiux.md\` | Frontend + UI |
|
|
83
|
-
| Build mobile/PWA | \`.citadel/teams/cto-makers.md\` + \`skills/skills_mobile.md\` + \`skills/skills_uiux.md\` | Mobile |
|
|
84
|
-
| Review | \`.citadel/teams/cto-checkers.md\` + relevant skills | Checkers validate |
|
|
85
|
-
| Security | \`.citadel/teams/ciso-all.md\` + \`skills/skills_security.md\` | Full security review |
|
|
86
|
-
| Ship (Gate 4) | \`.citadel/teams/cto-makers.md\` (KELSEY only) | Deploy |
|
|
87
|
-
|
|
88
|
-
**rules_essential.md is read EVERY time.** Other skills only when relevant.
|
|
89
|
-
|
|
90
|
-
## WORKFLOW
|
|
72
|
+
## DELIVERY PROTOCOL
|
|
91
73
|
|
|
92
74
|
### Phase 1: INCEPTION (Gate 0)
|
|
93
75
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
76
|
+
1. Convene the C-Suite.
|
|
77
|
+
2. Ask all key questions in one grouped turn.
|
|
78
|
+
3. Wait for answers.
|
|
79
|
+
4. Draft specs only after answers.
|
|
80
|
+
5. Summarize and ask for confirmation before moving on.
|
|
97
81
|
|
|
98
|
-
|
|
99
|
-
2. **Each C-level asks 1-2 questions** (present ALL at once):
|
|
100
|
-
- 🎯 MARTY: Who is this for? What problem? Success metric?
|
|
101
|
-
- 🏗️ LINUS: Tech preferences? Scale? Existing code?
|
|
102
|
-
- 🛡️ BRUCE: User data? Auth? Compliance?
|
|
103
|
-
- 📈 SEAN: Discovery? Growth goals?
|
|
104
|
-
- 🗄️ MONICA: Data entities? Relationships? AI/ML?
|
|
105
|
-
3. **WAIT** for user answers. Do NOT proceed.
|
|
106
|
-
4. **AFTER answers** — Draft specs into \`.citadel/specs/\`
|
|
107
|
-
5. **Present summary** — "Does this look right?"
|
|
108
|
-
6. **Gate 0 PASS** — Only after user confirms.
|
|
82
|
+
### Phase 2: IMPLEMENTATION PLAN
|
|
109
83
|
|
|
110
|
-
|
|
84
|
+
1. LINUS writes the implementation plan.
|
|
85
|
+
2. Relevant makers challenge the plan from their specialty.
|
|
86
|
+
3. Relevant checkers identify likely regressions early.
|
|
87
|
+
4. Present the consolidated plan to the user.
|
|
88
|
+
5. Do not start coding or claim completion before this exists.
|
|
111
89
|
|
|
112
|
-
|
|
90
|
+
### Phase 3: BUILD AND INTERNAL DEBATE
|
|
113
91
|
|
|
114
|
-
1. Makers
|
|
115
|
-
2.
|
|
116
|
-
3.
|
|
92
|
+
1. Makers implement against the approved plan.
|
|
93
|
+
2. If UI is involved, JONY participates before and during frontend work.
|
|
94
|
+
3. Agents are allowed to disagree internally.
|
|
95
|
+
4. Show disagreements briefly as "Debate" or "Flags", then resolve them.
|
|
96
|
+
5. Do not expose raw maker output as the final answer.
|
|
117
97
|
|
|
118
|
-
### Phase
|
|
98
|
+
### Phase 4: REVIEW AND COHERENCE
|
|
119
99
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
3. BRENDAN: performance
|
|
125
|
-
4. CHARLIE: security (OWASP Top 10)
|
|
126
|
-
5. AARON: accessibility (WCAG 2.1 AA)
|
|
127
|
-
|
|
128
|
-
### Phase 4: SHIP
|
|
129
|
-
|
|
130
|
-
1. BRUCE: final sign-off or VETO
|
|
131
|
-
2. KELSEY: deploy (zero-downtime)
|
|
132
|
-
3. CHARITY: observability
|
|
100
|
+
1. Checkers review the outcome.
|
|
101
|
+
2. LINUS performs the final coherence review: architecture fit, contract safety, regression risk.
|
|
102
|
+
3. BRUCE reviews if security is touched.
|
|
103
|
+
4. Return a single consolidated answer with blockers, risks, and next action.
|
|
133
104
|
|
|
134
105
|
## MEMORY PROTOCOL (CRITICAL)
|
|
135
106
|
|
|
136
|
-
You MUST maintain project memory by reading and writing these files. This is how context survives across sessions.
|
|
137
|
-
|
|
138
107
|
### On EVERY session start:
|
|
139
|
-
1. Read \`.citadel/vault/PROGRESS.md\`
|
|
140
|
-
2. Read \`.citadel/vault/CONTEXT_SNAPSHOT.md\`
|
|
141
|
-
3. Read \`.citadel/vault/DECISIONS.md\`
|
|
108
|
+
1. Read \`.citadel/vault/PROGRESS.md\`
|
|
109
|
+
2. Read \`.citadel/vault/CONTEXT_SNAPSHOT.md\` only if PROGRESS is not enough
|
|
110
|
+
3. Read \`.citadel/vault/DECISIONS.md\` or \`.citadel/vault/ARCHITECTURE.md\` only if the task depends on them
|
|
142
111
|
|
|
143
112
|
### On EVERY phase transition or significant action:
|
|
144
113
|
1. Update \`.citadel/vault/PROGRESS.md\` — current phase, gate, what's done, what's next
|
|
@@ -165,6 +134,15 @@ You MUST maintain project memory by reading and writing these files. This is how
|
|
|
165
134
|
⚠️ If these files are empty or missing, you are in a FRESH PROJECT. Start from Phase 1: Inception.
|
|
166
135
|
⚠️ If PROGRESS.md shows you're in Build phase, do NOT re-ask inception questions.
|
|
167
136
|
|
|
137
|
+
## RESPONSE SHAPE
|
|
138
|
+
|
|
139
|
+
When the task is non-trivial, answer with this order:
|
|
140
|
+
1. **Plan** — implementation plan from LINUS
|
|
141
|
+
2. **Debate** — short disagreements or tradeoffs between agents
|
|
142
|
+
3. **Checker Flags** — what reviewers found
|
|
143
|
+
4. **CTO Verdict** — safe / risky / blocked and why
|
|
144
|
+
5. **Next Step** — what you recommend or need from the user
|
|
145
|
+
|
|
168
146
|
## COMMANDS
|
|
169
147
|
- "help" / "stuck" → Show status + next steps
|
|
170
148
|
- "status" → Read PROGRESS.md, show gate progress
|
|
@@ -181,6 +159,47 @@ You MUST maintain project memory by reading and writing these files. This is how
|
|
|
181
159
|
- \`.citadel/specs/growth.md\` — Growth
|
|
182
160
|
`;
|
|
183
161
|
}
|
|
162
|
+
function buildCodexRulesContent() {
|
|
163
|
+
const c = getAgentCount();
|
|
164
|
+
return `# CITADEL for Codex
|
|
165
|
+
|
|
166
|
+
You are ATLAS, orchestrating a ${c.total}-agent delivery system inside Codex.
|
|
167
|
+
|
|
168
|
+
## Priority rules
|
|
169
|
+
1. Read as little context as possible.
|
|
170
|
+
2. Never preload \`.citadel/agents/\`.
|
|
171
|
+
3. Builders do not self-approve.
|
|
172
|
+
4. LINUS writes an implementation plan before makers start.
|
|
173
|
+
5. LINUS performs a coherence review before anything is presented as done.
|
|
174
|
+
6. If UI is involved, JONY participates before DAN finalizes implementation.
|
|
175
|
+
7. Return one consolidated answer after internal maker/checker/CTO debate.
|
|
176
|
+
8. Use progressive disclosure inside skill files: read the Section Index, then only the relevant sections.
|
|
177
|
+
|
|
178
|
+
## Minimal file loading
|
|
179
|
+
- Always first: \`.citadel/skills/rules_essential.md\`, \`.citadel/vault/PROGRESS.md\`
|
|
180
|
+
- Resume only if needed: \`.citadel/vault/CONTEXT_SNAPSHOT.md\`
|
|
181
|
+
- Frontend/UI: \`.citadel/teams/frontend-pod.md\`, \`skills/skills_frontend.md\`, \`skills/skills_uiux.md\`, \`skills/skills_visual_design.md\`, \`skills/skills_design_system.md\`, \`skills/skills_implementation_plan.md\`
|
|
182
|
+
- Backend: \`.citadel/teams/backend-pod.md\`, \`skills/skills_backend.md\`, \`skills/skills_data.md\`, \`skills/skills_implementation_plan.md\`
|
|
183
|
+
- Review/coherence: relevant pod + \`skills/skills_change_safety.md\`
|
|
184
|
+
- Security: \`.citadel/teams/ciso-all.md\`, \`skills/skills_security.md\`
|
|
185
|
+
- Within any skill file, read the Section Index first and jump only to the needed sections.
|
|
186
|
+
|
|
187
|
+
## Required workflow
|
|
188
|
+
1. Clarify or resume current phase.
|
|
189
|
+
2. Draft implementation plan.
|
|
190
|
+
3. Makers debate internally.
|
|
191
|
+
4. Checkers review.
|
|
192
|
+
5. LINUS issues the coherence verdict.
|
|
193
|
+
6. Speak to the user only with the consolidated result.
|
|
194
|
+
|
|
195
|
+
## Response shape
|
|
196
|
+
- Plan
|
|
197
|
+
- Debate
|
|
198
|
+
- Checker Flags
|
|
199
|
+
- CTO Verdict
|
|
200
|
+
- Next Step
|
|
201
|
+
`;
|
|
202
|
+
}
|
|
184
203
|
// ── Write team files (phased loading) ──
|
|
185
204
|
function writeTeamFiles(citadelPath) {
|
|
186
205
|
const teamsDir = join(citadelPath, 'teams');
|
|
@@ -206,6 +225,8 @@ function writeTeamFiles(citadelPath) {
|
|
|
206
225
|
writeFileSync(join(teamsDir, 'cdo-makers.md'), buildTeamFile('CDO Team — Makers', all.filter(a => a.team === 'cdo' && a.level === 'maker')), 'utf-8');
|
|
207
226
|
// CDO Checkers
|
|
208
227
|
writeFileSync(join(teamsDir, 'cdo-checkers.md'), buildTeamFile('CDO Team — Checkers', all.filter(a => a.team === 'cdo' && a.level === 'checker')), 'utf-8');
|
|
228
|
+
writeFileSync(join(teamsDir, 'frontend-pod.md'), buildTeamFile('Frontend Pod — Design, Build, Review', all.filter(a => ['linus', 'jony', 'dan', 'guido', 'lisa', 'aaron'].includes(a.id))), 'utf-8');
|
|
229
|
+
writeFileSync(join(teamsDir, 'backend-pod.md'), buildTeamFile('Backend Pod — Plan, Build, Review', all.filter(a => ['linus', 'uncle-bob', 'codd', 'guido', 'kent', 'charlie'].includes(a.id))), 'utf-8');
|
|
209
230
|
}
|
|
210
231
|
// ── Install for each IDE ──
|
|
211
232
|
export function installClaudeCode(projectPath) {
|
|
@@ -213,9 +234,9 @@ export function installClaudeCode(projectPath) {
|
|
|
213
234
|
const cmdDir = join(projectPath, '.claude', 'commands');
|
|
214
235
|
mkdirSync(cmdDir, { recursive: true });
|
|
215
236
|
writeFileSync(join(cmdDir, 'citadel-help.md'), `You are ATLAS. Read CLAUDE.md for rules. Show current phase, progress, next steps. Guide the user.`, 'utf-8');
|
|
216
|
-
writeFileSync(join(cmdDir, 'citadel-build.md'), `Read CLAUDE.md
|
|
217
|
-
writeFileSync(join(cmdDir, 'citadel-review.md'), `Read the relevant
|
|
218
|
-
writeFileSync(join(cmdDir, 'citadel-security.md'), `You are BRUCE (CISO). Read .citadel/teams/ciso-all.md. Full security audit. You have ABSOLUTE VETO POWER.`, 'utf-8');
|
|
237
|
+
writeFileSync(join(cmdDir, 'citadel-build.md'), `Read CLAUDE.md. Load ONLY the smallest relevant files. Follow: implementation plan -> makers -> checkers -> CTO coherence review -> consolidated answer.`, 'utf-8');
|
|
238
|
+
writeFileSync(join(cmdDir, 'citadel-review.md'), `Read the relevant pod and skills_change_safety.md. Run checker review plus LINUS coherence verdict. PASS/FAIL with concrete flags.`, 'utf-8');
|
|
239
|
+
writeFileSync(join(cmdDir, 'citadel-security.md'), `You are BRUCE (CISO). Read .citadel/teams/ciso-all.md plus skills/skills_security.md. Full security audit. You have ABSOLUTE VETO POWER.`, 'utf-8');
|
|
219
240
|
writeFileSync(join(cmdDir, 'citadel-status.md'), `Read .citadel/memory/session.json and .citadel/gates/. Show phase, gate progress, next steps.`, 'utf-8');
|
|
220
241
|
}
|
|
221
242
|
export function installCursor(projectPath) {
|
|
@@ -223,8 +244,8 @@ export function installCursor(projectPath) {
|
|
|
223
244
|
const cmdDir = join(projectPath, '.cursor', 'commands');
|
|
224
245
|
mkdirSync(cmdDir, { recursive: true });
|
|
225
246
|
writeFileSync(join(cmdDir, 'citadel-help.md'), `Read .cursorrules and .citadel/ directory. Show current phase, next steps.`, 'utf-8');
|
|
226
|
-
writeFileSync(join(cmdDir, 'citadel-build.md'), `Read .cursorrules.
|
|
227
|
-
writeFileSync(join(cmdDir, 'citadel-review.md'), `Read relevant
|
|
247
|
+
writeFileSync(join(cmdDir, 'citadel-build.md'), `Read .cursorrules. Follow implementation plan -> makers -> checkers -> CTO coherence review. Do not return raw maker output.`, 'utf-8');
|
|
248
|
+
writeFileSync(join(cmdDir, 'citadel-review.md'), `Read the relevant pod plus skills_change_safety.md. Review with checkers, then issue LINUS coherence verdict.`, 'utf-8');
|
|
228
249
|
}
|
|
229
250
|
export function installAntigravity(projectPath) {
|
|
230
251
|
writeFileSync(join(projectPath, 'GEMINI.md'), buildRulesContent(), 'utf-8');
|
|
@@ -235,11 +256,15 @@ export function installAntigravity(projectPath) {
|
|
|
235
256
|
export function installWindsurf(projectPath) {
|
|
236
257
|
writeFileSync(join(projectPath, '.windsurfrules'), buildRulesContent(), 'utf-8');
|
|
237
258
|
}
|
|
259
|
+
export function installCodex(projectPath) {
|
|
260
|
+
writeFileSync(join(projectPath, 'AGENTS.md'), buildCodexRulesContent(), 'utf-8');
|
|
261
|
+
}
|
|
238
262
|
export function installAllIDEs(projectPath) {
|
|
239
263
|
installClaudeCode(projectPath);
|
|
240
264
|
installCursor(projectPath);
|
|
241
265
|
installAntigravity(projectPath);
|
|
242
266
|
installWindsurf(projectPath);
|
|
267
|
+
installCodex(projectPath);
|
|
243
268
|
}
|
|
244
269
|
export { writeTeamFiles };
|
|
245
270
|
//# sourceMappingURL=ide-rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-rules.js","sourceRoot":"","sources":["../../src/cli/ide-rules.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,yDAAyD;AACzD,kEAAkE;AAElE,OAAO,
|
|
1
|
+
{"version":3,"file":"ide-rules.js","sourceRoot":"","sources":["../../src/cli/ide-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -71,6 +71,9 @@ After init, you can also use slash commands in your IDE:
|
|
|
71
71
|
/citadel-build — Start the maker team
|
|
72
72
|
/citadel-review — Run the checker team
|
|
73
73
|
/citadel-status — Phase & gate dashboard
|
|
74
|
+
|
|
75
|
+
Codex support:
|
|
76
|
+
AGENTS.md — Lean Codex instructions with phased loading
|
|
74
77
|
`);
|
|
75
78
|
}
|
|
76
79
|
else if (cmd === 'version' || cmd === '--version' || cmd === '-v') {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -5,8 +5,8 @@ import { Memory } from '../core/memory.js';
|
|
|
5
5
|
import { GateSystem } from '../core/gates.js';
|
|
6
6
|
import { getAgentCount, AGENT_REGISTRY } from '../agents/registry.js';
|
|
7
7
|
import { banner } from '../ui/terminal.js';
|
|
8
|
-
import { installAllIDEs, writeTeamFiles } from './ide-rules.js';
|
|
9
|
-
import { writeSkills } from './skills.js';
|
|
8
|
+
import { installAllIDEs, TEAM_FILE_COUNT, writeTeamFiles } from './ide-rules.js';
|
|
9
|
+
import { SKILL_FILE_COUNT, writeSkills } from './skills.js';
|
|
10
10
|
function ask(q) {
|
|
11
11
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
12
12
|
return new Promise(r => { rl.question(q, a => { rl.close(); r(a.trim()); }); });
|
|
@@ -161,6 +161,7 @@ function writeGettingStarted(pp) {
|
|
|
161
161
|
|
|
162
162
|
### Files your IDE reads automatically
|
|
163
163
|
Your AI IDE picks these up without any action from you:
|
|
164
|
+
- \`AGENTS.md\` → Codex reads this on every message
|
|
164
165
|
- \`CLAUDE.md\` → Claude Code reads this on every message
|
|
165
166
|
- \`GEMINI.md\` → Antigravity reads this on every message
|
|
166
167
|
- \`.cursorrules\` → Cursor reads this on every message
|
|
@@ -171,7 +172,7 @@ when to ask questions vs when to build, and what standards to enforce.
|
|
|
171
172
|
|
|
172
173
|
### Your project's knowledge base (.citadel/)
|
|
173
174
|
- \`agents/\` — 42 agent personas with full personality, rules, and system prompts
|
|
174
|
-
- \`teams/\` —
|
|
175
|
+
- \`teams/\` — Team files + delivery pods (loaded per phase to save tokens)
|
|
175
176
|
- \`specs/\` — Templates for PRD, architecture, security, data model, growth
|
|
176
177
|
- \`memory/\` — Session state, decisions, errors (persists across sessions)
|
|
177
178
|
- \`gates/\` — Progress tracking for the 5 quality gates
|
|
@@ -186,7 +187,7 @@ when to ask questions vs when to build, and what standards to enforce.
|
|
|
186
187
|
## What to do now
|
|
187
188
|
|
|
188
189
|
### Step 1: Open your project in your IDE
|
|
189
|
-
Just open this folder in Claude Code, Cursor, Antigravity, or Windsurf.
|
|
190
|
+
Just open this folder in Codex, Claude Code, Cursor, Antigravity, or Windsurf.
|
|
190
191
|
The AI already knows about CITADEL — no configuration needed.
|
|
191
192
|
|
|
192
193
|
### Step 2: Describe what you want to build
|
|
@@ -221,6 +222,8 @@ Checker agents validate independently. The builder never reviews their own work.
|
|
|
221
222
|
- Specs are saved in .citadel/specs/ — they persist across sessions
|
|
222
223
|
- If the AI starts building without asking questions first, remind it:
|
|
223
224
|
"Follow CITADEL rules — ask questions before drafting"
|
|
225
|
+
- If the AI starts coding before review, remind it:
|
|
226
|
+
"Follow CITADEL delivery protocol — implementation plan, checkers, then CTO coherence review"
|
|
224
227
|
|
|
225
228
|
## Need help?
|
|
226
229
|
https://github.com/nbabderrahmane/citadel-ai/issues
|
|
@@ -272,13 +275,14 @@ export async function initCommand(targetPath) {
|
|
|
272
275
|
}
|
|
273
276
|
const c = getAgentCount();
|
|
274
277
|
console.log(` ✅ ${c.total} agents installed (.citadel/agents/)
|
|
275
|
-
✅
|
|
276
|
-
✅
|
|
278
|
+
✅ ${TEAM_FILE_COUNT} team files for phased loading (.citadel/teams/)
|
|
279
|
+
✅ ${SKILL_FILE_COUNT} skills files — engineering standards (.citadel/skills/)
|
|
277
280
|
✅ Spec templates (.citadel/specs/)
|
|
278
281
|
✅ Project vault — live memory (.citadel/vault/)
|
|
279
282
|
✅ Getting started guide (.citadel/GETTING_STARTED.md)
|
|
280
283
|
|
|
281
284
|
IDE rules (auto-loaded — no config needed):
|
|
285
|
+
✅ AGENTS.md → Codex
|
|
282
286
|
✅ CLAUDE.md → Claude Code
|
|
283
287
|
✅ .cursorrules → Cursor
|
|
284
288
|
✅ GEMINI.md → Antigravity
|
|
@@ -296,7 +300,7 @@ ${'═'.repeat(56)}
|
|
|
296
300
|
✅ CITADEL is ready. Here's what to do:
|
|
297
301
|
|
|
298
302
|
1. Open this folder in your IDE
|
|
299
|
-
(Claude Code, Cursor, Antigravity, or Windsurf)
|
|
303
|
+
(Codex, Claude Code, Cursor, Antigravity, or Windsurf)
|
|
300
304
|
|
|
301
305
|
2. The AI already knows the rules — just start talking:
|
|
302
306
|
"I want to build [describe your idea]"
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|