citadel-ai 1.2.0 → 1.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Command Intelligence Tower for Architected Development with Enforced Layers**
4
4
 
5
- > 42 AI agents. C-suite governance. Chinese Walls. You describe, they build.
5
+ > A governance framework for AI-assisted building. 42 agents. Phased context. Maker ≠ Checker. You describe, they build — with structure.
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/citadel-ai.svg)](https://www.npmjs.com/package/citadel-ai)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -11,189 +11,131 @@
11
11
 
12
12
  ## What is CITADEL?
13
13
 
14
- CITADEL is an AI development framework that installs into your project and turns your IDE into a **42-agent engineering team**. You describe what you want. They design, build, review, and ship it.
14
+ CITADEL is not "42 AI agents that build your app." It's a **governance framework** that turns your AI IDE into a structured engineering team with roles, rules, gates, and separation of duties.
15
15
 
16
- Works with **any AI IDE**: Claude Code, Cursor, Antigravity, Windsurf.
16
+ It installs into your project and works with **any AI IDE**: Claude Code, Cursor, Antigravity, Windsurf.
17
17
 
18
18
  ```bash
19
19
  npx citadel-ai init
20
20
  ```
21
21
 
22
- That's it. Open your IDE. Start talking.
22
+ Open your IDE. Start talking. The AI already knows the rules.
23
+
24
+ ### What CITADEL actually is
25
+
26
+ - An **OS for AI-assisted building** — rules, phases, gates injected into your IDE
27
+ - **42 agent personas** with distinct roles, philosophies, and immutable rules
28
+ - An **orchestrator** that routes work based on the current phase
29
+ - **Phased context loading** — only the relevant team is loaded, not all 42 agents
30
+ - **Persistent memory** — decisions, errors, and state survive across sessions
31
+
32
+ ### What CITADEL is not (yet)
33
+
34
+ - Not a fully autonomous AI swarm
35
+ - Not a replacement for a real dev team when you need to scale
36
+ - Not a polished SaaS product — it's an open-source framework in active development
23
37
 
24
38
  ---
25
39
 
26
40
  ## Quick Start
27
41
 
28
42
  ```bash
29
- # 1. Go to your project folder
30
43
  cd my-project
31
-
32
- # 2. Install CITADEL
33
44
  npx citadel-ai init
34
-
35
- # 3. Open your IDE and start building
36
45
  ```
37
46
 
38
- After init, CITADEL creates rules for your IDE automatically:
47
+ After init, CITADEL creates:
39
48
 
40
- | IDE | File created | How to start |
41
- |-----|-------------|--------------|
42
- | Claude Code | `CLAUDE.md` + slash commands | `/citadel-help` |
43
- | Cursor | `.cursorrules` + commands | `/citadel-help` |
49
+ ```
50
+ your-project/
51
+ ├── CLAUDE.md Rules for Claude Code (auto-loaded)
52
+ ├── GEMINI.md ← Rules for Antigravity (auto-loaded)
53
+ ├── .cursorrules ← Rules for Cursor (auto-loaded)
54
+ ├── .windsurfrules ← Rules for Windsurf (auto-loaded)
55
+ ├── .claude/commands/ ← Slash commands (/citadel-help, etc.)
56
+ ├── .cursor/commands/ ← Slash commands
57
+ ├── .antigravity/rules.md ← Antigravity backup rules
58
+ ├── .citadel/
59
+ │ ├── agents/ ← 42 full agent persona files (.md)
60
+ │ ├── teams/ ← 10 team files (phased loading for IDE)
61
+ │ │ ├── c-suite.md ← Loaded at Inception
62
+ │ │ ├── cto-makers.md ← Loaded at Build
63
+ │ │ ├── cto-checkers.md ← Loaded at Review
64
+ │ │ └── ...
65
+ │ ├── specs/ ← PRD, ADR, Security, Data Model, Growth
66
+ │ ├── memory/ ← Session state, decisions, errors (gitignored)
67
+ │ └── gates/ ← Gate progress tracking (gitignored)
68
+ └── .gitignore ← Updated automatically
69
+ ```
70
+
71
+ | IDE | Rules file | How to start |
72
+ |-----|-----------|--------------|
73
+ | Claude Code | `CLAUDE.md` + `/citadel-help` | Slash commands |
74
+ | Cursor | `.cursorrules` + `/citadel-help` | Slash commands |
44
75
  | Antigravity | `GEMINI.md` | Just start chatting |
45
76
  | Windsurf | `.windsurfrules` | Just start chatting |
46
77
 
47
- Your AI already knows the 42 agents, the rules, the gates — everything.
48
-
49
- ---
50
-
51
- ## Why CITADEL?
52
-
53
- Most AI coding tools are a single brain doing everything. CITADEL is an **organization**.
54
-
55
- | Feature | Single AI | CITADEL |
56
- |---------|-----------|---------|
57
- | Architecture decisions | Vibes | ADRs reviewed by CTO agent |
58
- | Security | Hope | CISO with **absolute veto power** |
59
- | Code quality | Maybe | Chinese Wall: Maker ≠ Checker |
60
- | Testing | Optional | 80% coverage minimum, test pyramid enforced |
61
- | Data design | Inline | Schema-first, 3NF minimum, FK on every relationship |
62
- | Memory | None | Persistent memory across sessions |
63
- | Progress | Unknown | 5 mandatory gates with explicit sign-offs |
64
-
65
- ---
66
-
67
- ## The 42 Agents
68
-
69
- ### Command Layer (1)
70
-
71
- | Agent | Role | Inspiration |
72
- |-------|------|-------------|
73
- | ⚡ **ATLAS** | Orchestrator | Andy Grove |
74
-
75
- ### C-Suite (5)
76
-
77
- | Agent | Role | Inspiration | Superpower |
78
- |-------|------|-------------|------------|
79
- | 🏗️ **LINUS** | CTO | Linus Torvalds + Martin Fowler | Architecture, ADRs, tech stack |
80
- | 🎯 **MARTY** | CPO | Marty Cagan | PRDs, user stories, scope |
81
- | 📈 **SEAN** | CGO | Sean Ellis + Andrew Chen | Growth, analytics, SEO |
82
- | 🛡️ **BRUCE** | CISO | Bruce Schneier | **ABSOLUTE VETO POWER** |
83
- | 🗄️ **MONICA** | CDO | Monica Rogati | Data architecture, AI/ML |
84
-
85
- ### Maker Teams (20 builders)
86
-
87
- **CTO Team:** ⚙️ UNCLE BOB (Backend) · 🎨 DAN (Frontend) · 📱 STEIPETE (Mobile) · 🚀 KELSEY (DevOps) · 📡 GRACE (API Design) · 🔭 CHARITY (Observability)
88
-
89
- **CPO Team:** ✏️ JONY (UX) · 📊 TERESA (Analyst) · 📝 STRUNK (Spec Writer) · 📚 RICH (Documentation)
90
-
91
- **CGO Team:** 📉 DJ PATIL (Analytics) · 🔎 CYRUS (SEO) · 🧬 CHAMATH (Growth)
92
-
93
- **CISO Team:** 🔐 FILIPPO (Auth) · 🔒 MOXIE (Encryption) · 📋 MAX (Compliance)
94
-
95
- **CDO Team:** 🏛️ CODD (Data Architect) · 🤖 KARPATHY (ML/AI) · 🧠 HARRISON (Agentic AI) · 🔌 ALEX (MCP)
96
-
97
- ### Checker Teams (16 validators)
98
-
99
- **CTO Checkers:** 🔍 GUIDO (Code Review) · 🧪 KENT (Tests) · ⚡ BRENDAN (Performance)
100
-
101
- **CPO Checkers:** 👁️ JAKOB (UX Review) · 📏 RAZOR (Scope) · ✅ LISA (Acceptance) · ♿ AARON (Accessibility)
102
-
103
- **CGO Checkers:** ✔️ NATE (Data Validation) · 🕷️ ALEYDA (SEO Audit) · 🎯 PEEP (Conversion)
104
-
105
- **CISO Checkers:** ⚔️ CHARLIE (Pentest) · 🔬 WINDOW (Security Audit) · 📜 TRAIL (Audit Trail)
106
-
107
- **CDO Checkers:** 🧐 DATE (Schema Review) · 🏅 DEMING (Data Quality) · 🔄 FLYWAY (Migration)
78
+ For the interactive CLI (optional):
79
+ ```bash
80
+ export ANTHROPIC_API_KEY=sk-ant-... # or OPENAI_API_KEY
81
+ npx citadel-ai run
82
+ ```
108
83
 
109
84
  ---
110
85
 
111
- ## Core Principles
86
+ ## The Core Idea
112
87
 
113
- ### 1. Maker Checker (Chinese Wall)
88
+ Most AI coding tools are one brain doing everything. CITADEL is an **organization**.
114
89
 
115
- The agent that builds can **never** validate its own work. Enforced at the system level.
90
+ ### 1. Organization > Single Agent
116
91
 
117
- ### 2. CISO Veto Power
92
+ | Layer | Agents | Role |
93
+ |-------|--------|------|
94
+ | Command | ⚡ ATLAS | Orchestrates, routes, explains |
95
+ | C-Suite | 🏗️ LINUS (CTO), 🎯 MARTY (CPO), 📈 SEAN (CGO), 🛡️ BRUCE (CISO), 🗄️ MONICA (CDO) | Strategic decisions |
96
+ | Makers (20) | UNCLE BOB, DAN, STEIPETE, KELSEY, JONY, FILIPPO, CODD, KARPATHY, HARRISON, ALEX, GRACE, CHARITY, RICH... | Build |
97
+ | Checkers (16) | GUIDO, KENT, BRENDAN, JAKOB, CHARLIE, AARON, ALEYDA, DATE, DEMING, FLYWAY, TRAIL... | Validate |
118
98
 
119
- BRUCE (CISO) can block **any** deployment. No exceptions. Not even from you.
99
+ Each agent has a name, inspiration (Linus Torvalds, Kent Beck, Bruce Schneier...), philosophy, voice, and immutable rules. Full personas in `.citadel/agents/`.
120
100
 
121
- ### 3. 5 Mandatory Gates
101
+ ### 2. Governance Before Speed
122
102
 
123
- | Gate | Name | Blocker |
124
- |------|------|---------|
125
- | Gate 0 | **Inception** | All C-levels must sign off |
126
- | Gate 1 | **Pre-Design** | PRD approved, acceptance criteria complete |
127
- | Gate 2 | **Pre-Build** | ADR + schema + security review approved |
128
- | Gate 3 | **Pre-Ship** | All checkers PASS + CISO veto |
129
- | Gate 4 | **Post-Deploy** | Auto-rollback if critical metrics degrade |
103
+ - **Questions before specs** C-Suite asks questions BEFORE drafting anything
104
+ - **5 mandatory gates** — Inception → Pre-Design → Pre-Build → Pre-Ship → Post-Deploy
105
+ - **Chinese Wall** Maker Checker. The builder never reviews their own work
106
+ - **CISO veto** BRUCE can block any deployment. No override possible
107
+ - **Code standards in agent DNA** TS strict, 200 lines/file, 30 lines/function, 80% test coverage, anti-patterns auto-rejected
130
108
 
131
- ### 4. Persistent Memory
109
+ ### 3. Phased Context Loading
132
110
 
133
- ```
134
- .citadel/
135
- ├── agents/ # 42 agent persona files (readable by IDE)
136
- ├── specs/ # PRD, ADR, security, data model, growth
137
- ├── memory/ # Session state, decisions, errors
138
- └── gates/ # Gate progress tracking
139
- ```
111
+ The IDE doesn't load all 42 agents at once. It loads only the team needed for the current phase:
140
112
 
141
- ---
113
+ | Phase | File loaded | Tokens |
114
+ |-------|------------|--------|
115
+ | Inception | `c-suite.md` | ~460 |
116
+ | Build (backend) | `cto-makers.md` | ~680 |
117
+ | Review (code) | `cto-checkers.md` | ~340 |
118
+ | Security audit | `ciso-all.md` | ~740 |
142
119
 
143
- ## What Gets Installed
120
+ Rules file (`GEMINI.md` etc.): ~1,200 tokens — loaded every message.
144
121
 
145
- When you run `npx citadel-ai init`, CITADEL creates:
146
-
147
- ```
148
- your-project/
149
- ├── CLAUDE.md ← Rules for Claude Code
150
- ├── GEMINI.md ← Rules for Antigravity
151
- ├── .cursorrules ← Rules for Cursor
152
- ├── .windsurfrules ← Rules for Windsurf
153
- ├── .claude/commands/ ← Slash commands for Claude Code
154
- │ ├── citadel-help.md
155
- │ ├── citadel-build.md
156
- │ ├── citadel-review.md
157
- │ ├── citadel-security.md
158
- │ └── citadel-status.md
159
- ├── .cursor/commands/ ← Slash commands for Cursor
160
- ├── .antigravity/ ← Rules for Antigravity
161
- ├── .citadel/
162
- │ ├── agents/ ← 42 agent personas (.md files)
163
- │ ├── specs/ ← PRD, ADR, Security, Data, Growth templates
164
- │ ├── memory/ ← Persistent state (gitignored)
165
- │ └── gates/ ← Gate tracking (gitignored)
166
- └── .gitignore ← Updated to ignore state files
167
- ```
122
+ **Result: ~1,600–1,900 tokens per phase** instead of ~14,000 if everything was loaded. 88% reduction.
168
123
 
169
124
  ---
170
125
 
171
- ## How It Works
172
-
173
- 1. **You describe** what you want to build in plain language
174
- 2. **Your AI IDE** reads CITADEL rules and becomes a 42-agent team
175
- 3. **C-Suite agents** make strategic decisions (architecture, product, security, data, growth)
176
- 4. **Maker agents** build (backend, frontend, mobile, auth, data, etc.)
177
- 5. **Checker agents** validate (code review, tests, pentest, UX audit, etc.)
178
- 6. **Gates enforce** quality at every phase transition
126
+ ## The 42 Agents
179
127
 
180
- ---
128
+ **CTO Team:** ⚙️ UNCLE BOB (Backend) · 🎨 DAN (Frontend) · 📱 STEIPETE (Mobile) · 🚀 KELSEY (DevOps) · 📡 GRACE (API Design) · 🔭 CHARITY (Observability)
181
129
 
182
- ## Coding DNA
130
+ **CPO Team:** ✏️ JONY (UX) · 📊 TERESA (Analyst) · 📝 STRUNK (Spec Writer) · 📚 RICH (Documentation)
183
131
 
184
- Every agent carries these principles:
132
+ **CGO Team:** 📉 DJ PATIL (Analytics) · 🔎 CYRUS (SEO) · 🧬 CHAMATH (Growth)
185
133
 
186
- 1. **Code is for Humans First** Readability over cleverness
187
- 2. **Simplicity Over Cleverness** — The simplest solution that works
188
- 3. **Measurement Before Optimization** — Profile, don't guess
189
- 4. **Single Responsibility** — One function, one job
190
- 5. **Test-Driven Development** — Red → Green → Refactor
191
- 6. **Low Coupling, High Cohesion** — Modules that stand alone
192
- 7. **Evolutionary Design** — Architecture that adapts
134
+ **CISO Team:** 🔐 FILIPPO (Auth) · 🔒 MOXIE (Encryption) · 📋 MAX (Compliance)
193
135
 
194
- ### Anti-Patterns Registry (Auto-Detected)
136
+ **CDO Team:** 🏛️ CODD (Data Architect) · 🤖 KARPATHY (ML/AI) · 🧠 HARRISON (Agentic AI) · 🔌 ALEX (MCP)
195
137
 
196
- God Objects · Primitive Obsession · Long Parameter Lists · Magic Numbers · Error Swallowing · Callback Hell · Framework Coupling · Speculative Generality
138
+ **Checkers:** 🔍 GUIDO · 🧪 KENT · BRENDAN · 👁️ JAKOB · 📏 RAZOR · LISA · ✔️ NATE · 🕷️ ALEYDA · 🎯 PEEP · ⚔️ CHARLIE · 🔬 WINDOW · 🧐 DATE · 🏅 DEMING · 🔄 FLYWAY · ♿ AARON · 📜 TRAIL
197
139
 
198
140
  ---
199
141
 
@@ -202,7 +144,7 @@ God Objects · Primitive Obsession · Long Parameter Lists · Magic Numbers · E
202
144
  | Command | Description |
203
145
  |---------|-------------|
204
146
  | `npx citadel-ai init` | Install CITADEL in your project |
205
- | `npx citadel-ai run` | Interactive CLI session |
147
+ | `npx citadel-ai run` | Interactive CLI (needs API key in env) |
206
148
  | `npx citadel-ai agents` | List all 42 agents |
207
149
  | `npx citadel-ai status` | Show current phase & gate |
208
150
  | `npx citadel-ai help` | Show all commands |
@@ -211,7 +153,7 @@ God Objects · Primitive Obsession · Long Parameter Lists · Magic Numbers · E
211
153
 
212
154
  ## Contributing
213
155
 
214
- CITADEL is built for vibe coders — people who build with AI without being traditional developers. If that's you, you're welcome here.
156
+ CITADEL is built for people who build with AI without being traditional developers. If that's you, you're welcome here.
215
157
 
216
158
  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
217
159
 
@@ -1,5 +1,7 @@
1
+ declare function writeTeamFiles(citadelPath: string): void;
1
2
  export declare function installClaudeCode(projectPath: string): void;
2
3
  export declare function installCursor(projectPath: string): void;
3
4
  export declare function installAntigravity(projectPath: string): void;
4
5
  export declare function installWindsurf(projectPath: string): void;
5
6
  export declare function installAllIDEs(projectPath: string): void;
7
+ export { writeTeamFiles };
@@ -1,198 +1,184 @@
1
1
  // ═══════════════════════════════════════════════════════════════
2
- // CITADEL — IDE Rules Generator (Claude Code, Cursor, Antigravity, Windsurf)
2
+ // CITADEL — IDE Rules Generator (Phased Context Loading)
3
3
  // ═══════════════════════════════════════════════════════════════
4
4
  import { mkdirSync, writeFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { getAgentCount, getAgentsByLevel } from '../agents/registry.js';
7
- // ── The master rules content (shared across all IDEs) ──
6
+ import { AGENT_REGISTRY, getAgentCount, getAgentsByLevel } from '../agents/registry.js';
7
+ // ── Compact agent line (minimal tokens) ──
8
+ function agentLine(a) {
9
+ return `- ${a.icon} **${a.name}** (${a.title}) — "${a.philosophy}"`;
10
+ }
11
+ // ── Team file content (loaded per phase) ──
12
+ function buildTeamFile(title, agents) {
13
+ let content = `# ${title}\n\n`;
14
+ for (const a of agents) {
15
+ content += `## ${a.icon} ${a.name} — ${a.title}\n`;
16
+ content += `> ${a.philosophy}\n\n`;
17
+ content += `**Voice:** ${a.voice}\n\n`;
18
+ content += `**Rules:**\n${a.rules.map(r => `- ${r}`).join('\n')}\n\n`;
19
+ }
20
+ return content;
21
+ }
22
+ // ── Master rules (SMALL — ~2500 tokens) ──
8
23
  function buildRulesContent() {
9
24
  const c = getAgentCount();
10
25
  const csuite = getAgentsByLevel('c-suite');
26
+ // Only list agent names + roles (no full details)
11
27
  const makers = getAgentsByLevel('maker');
12
28
  const checkers = getAgentsByLevel('checker');
13
- let agentRoster = '';
14
- // C-Suite
15
- agentRoster += '### C-Suite (Strategic Decisions)\n';
16
- for (const a of csuite) {
17
- agentRoster += `- **${a.icon} ${a.name} (${a.title})** — ${a.philosophy}\n`;
18
- }
19
- // Makers
20
- agentRoster += '\n### Makers (Build)\n';
21
- for (const a of makers) {
22
- agentRoster += `- **${a.icon} ${a.name} (${a.title})** ${a.philosophy}\n`;
23
- }
24
- // Checkers
25
- agentRoster += '\n### Checkers (Validate)\n';
26
- for (const a of checkers) {
27
- agentRoster += `- **${a.icon} ${a.name} (${a.title})** — ${a.philosophy}\n`;
28
- }
29
- return `# 🏰 CITADEL — AI Development Framework
30
-
31
- You are operating as CITADEL, a ${c.total}-agent AI development framework with enterprise-grade governance.
32
- When the user asks you to build something, you embody the relevant agents below.
33
- You ALWAYS follow the rules, gates, and Chinese Wall principles.
34
-
35
- ## YOUR IDENTITY
36
-
37
- You are **ATLAS** (the Orchestrator). You route conversations to the right agent.
38
- When you act as a specific agent, adopt their personality, voice, and rules.
39
- Always tell the user which agent is speaking: "🏗️ LINUS (CTO): ..."
29
+ let rosterCompact = '### C-Suite\n';
30
+ for (const a of csuite)
31
+ 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
+ return `# 🏰 CITADEL ${c.total}-Agent AI Development Framework
39
+
40
+ You are ATLAS, the Orchestrator. You manage a ${c.total}-agent team organized like a real company.
41
+ When acting as an agent, state who you are: "${'\u2699\uFE0F'} UNCLE BOB (Backend Engineer): ..."
40
42
 
41
43
  ## CORE RULES (IMMUTABLE)
42
44
 
43
- ### 1. Maker ≠ Checker (Chinese Wall)
44
- The agent/role that BUILDS something CANNOT validate it.
45
- When you write code as UNCLE BOB, you MUST switch to GUIDO to review it.
46
- Never skip the review step.
45
+ 1. **Maker ≠ Checker (Chinese Wall)** — The builder CANNOT review their own work.
46
+ 2. **CISO Veto** BRUCE can block ANY deployment. No override possible.
47
+ 3. **Questions before docs** NEVER draft specs before asking the user questions.
48
+ 4. **Code standards** TS strict, 200 lines/file, 30 lines/function, 80% test coverage.
49
+ 5. **Anti-patterns = auto-reject** — God Objects, Magic Numbers, Error Swallowing, Callback Hell.
47
50
 
48
- ### 2. CISO Veto Power
49
- BRUCE (CISO) can block ANY deployment for security reasons.
50
- Always run a security check before shipping. If there's a critical vulnerability, STOP.
51
+ ## THE AGENTS
51
52
 
52
- ### 3. 5 Mandatory Gates
53
- Every project goes through these gates IN ORDER:
54
- - **Gate 0 — Inception**: Define the problem, scope, tech stack. All C-levels sign off.
55
- - **Gate 1 — Pre-Design**: PRD with user stories + acceptance criteria approved.
56
- - **Gate 2 — Pre-Build**: Architecture Decision Record + data model + security review.
57
- - **Gate 3 — Pre-Ship**: Code review + tests (80%+ coverage) + security audit + CISO sign-off.
58
- - **Gate 4 — Post-Deploy**: Monitoring active, rollback plan tested.
53
+ ${rosterCompact}
59
54
 
60
- ### 4. Code Standards
61
- - TypeScript strict mode
62
- - Max 200 lines per file, 30 lines per function
63
- - Business logic in service layer ONLY (never in controllers or DB layer)
64
- - Every public function has a test
65
- - No magic numbers — use named constants
66
- - Error handling: explicit, typed, never swallowed
55
+ ## PHASED CONTEXT LOADING
67
56
 
68
- ### 5. Anti-Patterns (Auto-Reject)
69
- If you detect these, flag them immediately:
70
- God Objects, Primitive Obsession, Long Parameter Lists, Magic Numbers,
71
- Error Swallowing, Callback Hell, Framework Coupling, Speculative Generality
57
+ ⚠️ DO NOT read all agent files at once. Load ONLY what you need per phase:
72
58
 
73
- ## THE 42 AGENTS
59
+ | Phase | Read these files | Purpose |
60
+ |-------|-----------------|---------|
61
+ | Inception (Gate 0) | \`.citadel/teams/c-suite.md\` | C-levels ask questions, then draft specs |
62
+ | Pre-Design (Gate 1) | \`.citadel/teams/cpo-makers.md\` | Product team refines stories + UX |
63
+ | Pre-Build (Gate 2) | \`.citadel/teams/cto-makers.md\` + \`.citadel/teams/cdo-makers.md\` | Architecture + data model |
64
+ | Build | \`.citadel/teams/cto-makers.md\` + team needed | Makers build per domain |
65
+ | Review | \`.citadel/teams/cto-checkers.md\` + relevant checkers | Checkers validate |
66
+ | Security | \`.citadel/teams/ciso-all.md\` | Full security review |
67
+ | Ship (Gate 4) | \`.citadel/teams/cto-makers.md\` (KELSEY only) | Deploy |
74
68
 
75
- ${agentRoster}
69
+ Only read a team file when you ENTER that phase. Not before.
76
70
 
77
- ## HOW TO WORK
71
+ ## WORKFLOW
78
72
 
79
- ### ⚠️ CRITICAL: NEVER DRAFT ANYTHING BEFORE ASKING QUESTIONS
73
+ ### Phase 1: INCEPTION (Gate 0)
80
74
 
81
- ### Phase 1: INCEPTION (Gate 0) — C-Suite Committee
75
+ ⚠️ NEVER DRAFT ANYTHING BEFORE ASKING QUESTIONS.
82
76
 
83
- When the user describes what they want to build:
77
+ Read \`.citadel/teams/c-suite.md\` for agent details.
84
78
 
85
- 1. **ATLAS acknowledges** — "Got it. Before we start building, I'm convening the C-Suite to make sure we understand your vision correctly."
79
+ 1. **ATLAS** — "I'm convening the C-Suite."
80
+ 2. **Each C-level asks 1-2 questions** (present ALL at once):
81
+ - 🎯 MARTY: Who is this for? What problem? Success metric?
82
+ - 🏗️ LINUS: Tech preferences? Scale? Existing code?
83
+ - 🛡️ BRUCE: User data? Auth? Compliance?
84
+ - 📈 SEAN: Discovery? Growth goals?
85
+ - 🗄️ MONICA: Data entities? Relationships? AI/ML?
86
+ 3. **WAIT** for user answers. Do NOT proceed.
87
+ 4. **AFTER answers** — Draft specs into \`.citadel/specs/\`
88
+ 5. **Present summary** — "Does this look right?"
89
+ 6. **Gate 0 PASS** — Only after user confirms.
86
90
 
87
- 2. **C-SUITE QUESTIONS ROUND** — Each C-level asks 1-2 questions from their angle. Present them ALL at once so the user can answer in one go:
91
+ ### Phase 2: BUILD
88
92
 
89
- - 🎯 **MARTY (CPO)** asks about: Who is this for? What problem does it solve? What does success look like?
90
- - 🏗️ **LINUS (CTO)** asks about: Any tech preferences? Existing codebase? Scale requirements?
91
- - 🛡️ **BRUCE (CISO)** asks about: User data involved? Auth needed? Compliance requirements?
92
- - 📈 **SEAN (CGO)** asks about: How will users find this? Growth goals?
93
- - 🗄️ **MONICA (CDO)** asks about: What data entities? Relationships? AI/ML needs?
93
+ Read the relevant team file for the current task. Not all teams.
94
94
 
95
- 3. **WAIT FOR ANSWERS** Do NOT proceed until the user responds. Do NOT draft documents yet.
95
+ 1. Makers build (state which agent).
96
+ 2. Code follows standards.
97
+ 3. After building → switch to checkers (Chinese Wall).
96
98
 
97
- 4. **AFTER the user answers** — NOW the C-Suite drafts:
98
- - MARTY → PRD with user stories + acceptance criteria → writes to .citadel/specs/prd.md
99
- - LINUS → ADR (architecture decisions) → writes to .citadel/specs/adr.md
100
- - BRUCE → Security requirements → writes to .citadel/specs/security.md
101
- - MONICA → Data model → writes to .citadel/specs/data-model.md
102
- - SEAN → Growth strategy → writes to .citadel/specs/growth.md
99
+ ### Phase 3: REVIEW
103
100
 
104
- 5. **Present the plan** Show a summary of what was decided. Ask: "Does this look right? Any changes before we start building?"
101
+ Read \`.citadel/teams/[domain]-checkers.md\` for the domain being reviewed.
105
102
 
106
- 6. **Gate 0 PASS** — Only after user confirms, move to build phase.
103
+ 1. GUIDO: code quality
104
+ 2. KENT: tests (80%+)
105
+ 3. BRENDAN: performance
106
+ 4. CHARLIE: security (OWASP Top 10)
107
+ 5. AARON: accessibility (WCAG 2.1 AA)
107
108
 
108
- ### Phase 2: BUILD — Maker Teams
109
+ ### Phase 4: SHIP
109
110
 
110
- Only after Gate 0 is passed:
111
- 1. UNCLE BOB writes backend, DAN writes frontend, STEIPETE writes mobile
112
- 2. Each maker states who they are before writing code
113
- 3. Code follows the standards: TS strict, 200 lines/file max, 30 lines/function max
111
+ 1. BRUCE: final sign-off or VETO
112
+ 2. KELSEY: deploy (zero-downtime)
113
+ 3. CHARITY: observability
114
114
 
115
- ### Phase 3: REVIEW — Checker Teams (Chinese Wall)
116
-
117
- After building, switch to checkers (NEVER the same agent that built):
118
- 1. GUIDO reviews code quality
119
- 2. KENT validates tests (80% coverage minimum)
120
- 3. BRENDAN checks performance (LCP < 2.5s, no N+1 queries)
121
- 4. CHARLIE runs security checks (OWASP Top 10)
122
- 5. JAKOB reviews UX (Nielsen's 10 Heuristics)
123
- 6. AARON checks accessibility (WCAG 2.1 AA)
124
-
125
- ### Phase 4: SHIP — Deployment
126
-
127
- 1. BRUCE (CISO) gives final sign-off or VETO
128
- 2. KELSEY handles deployment (zero-downtime, rollback ready)
129
- 3. CHARITY sets up observability (structured logs, traces, alerts)
130
-
131
- ## PROJECT CONTEXT
115
+ ## COMMANDS
116
+ - "help" / "stuck" → Show status + next steps
117
+ - "status" Gate progress
118
+ - "build [feature]" Start build
119
+ - "review" Run checkers
120
+ - "@[agent]" Talk to specific agent
132
121
 
133
- Read these files for project-specific context:
122
+ ## SPECS
134
123
  - \`.citadel/specs/prd.md\` — Product requirements
135
124
  - \`.citadel/specs/adr.md\` — Architecture decisions
136
- - \`.citadel/specs/security.md\` — Security requirements
137
- - \`.citadel/specs/data-model.md\` — Database schema
138
- - \`.citadel/specs/growth.md\` — Growth strategy
139
- - \`.citadel/agents/\` — Detailed persona for each agent
140
-
141
- ## COMMANDS
142
- The user can say:
143
- - "help" or "stuck" → Explain where we are and what to do next
144
- - "status" → Show current gate progress
145
- - "build [feature]" → Start the build loop
146
- - "review" → Run the checker team
147
- - "@[agent-name]" → Talk to a specific agent (e.g., "@bruce security check")
125
+ - \`.citadel/specs/security.md\` — Security
126
+ - \`.citadel/specs/data-model.md\` — Data model
127
+ - \`.citadel/specs/growth.md\` — Growth
148
128
  `;
149
129
  }
130
+ // ── Write team files (phased loading) ──
131
+ function writeTeamFiles(citadelPath) {
132
+ const teamsDir = join(citadelPath, 'teams');
133
+ mkdirSync(teamsDir, { recursive: true });
134
+ const all = [...AGENT_REGISTRY.values()];
135
+ // C-Suite (loaded at inception)
136
+ writeFileSync(join(teamsDir, 'c-suite.md'), buildTeamFile('C-Suite — Strategic Leadership', all.filter(a => a.level === 'c-suite')), 'utf-8');
137
+ // CTO Makers (loaded at build)
138
+ writeFileSync(join(teamsDir, 'cto-makers.md'), buildTeamFile('CTO Team — Makers', all.filter(a => a.team === 'cto' && a.level === 'maker')), 'utf-8');
139
+ // CTO Checkers (loaded at review)
140
+ writeFileSync(join(teamsDir, 'cto-checkers.md'), buildTeamFile('CTO Team — Checkers', all.filter(a => a.team === 'cto' && a.level === 'checker')), 'utf-8');
141
+ // CPO Makers
142
+ writeFileSync(join(teamsDir, 'cpo-makers.md'), buildTeamFile('CPO Team — Makers', all.filter(a => a.team === 'cpo' && a.level === 'maker')), 'utf-8');
143
+ // CPO Checkers
144
+ writeFileSync(join(teamsDir, 'cpo-checkers.md'), buildTeamFile('CPO Team — Checkers', all.filter(a => a.team === 'cpo' && a.level === 'checker')), 'utf-8');
145
+ // CGO Makers
146
+ writeFileSync(join(teamsDir, 'cgo-makers.md'), buildTeamFile('CGO Team — Makers', all.filter(a => a.team === 'cgo' && a.level === 'maker')), 'utf-8');
147
+ // CGO Checkers
148
+ writeFileSync(join(teamsDir, 'cgo-checkers.md'), buildTeamFile('CGO Team — Checkers', all.filter(a => a.team === 'cgo' && a.level === 'checker')), 'utf-8');
149
+ // CISO All (loaded for security review)
150
+ writeFileSync(join(teamsDir, 'ciso-all.md'), buildTeamFile('CISO Team — Security (Makers + Checkers)', all.filter(a => a.team === 'ciso')), 'utf-8');
151
+ // CDO Makers
152
+ writeFileSync(join(teamsDir, 'cdo-makers.md'), buildTeamFile('CDO Team — Makers', all.filter(a => a.team === 'cdo' && a.level === 'maker')), 'utf-8');
153
+ // CDO Checkers
154
+ writeFileSync(join(teamsDir, 'cdo-checkers.md'), buildTeamFile('CDO Team — Checkers', all.filter(a => a.team === 'cdo' && a.level === 'checker')), 'utf-8');
155
+ }
150
156
  // ── Install for each IDE ──
151
157
  export function installClaudeCode(projectPath) {
152
- // CLAUDE.md — auto-loaded by Claude Code
153
158
  writeFileSync(join(projectPath, 'CLAUDE.md'), buildRulesContent(), 'utf-8');
154
- // Slash commands
155
159
  const cmdDir = join(projectPath, '.claude', 'commands');
156
160
  mkdirSync(cmdDir, { recursive: true });
157
- writeFileSync(join(cmdDir, 'citadel-help.md'), `You are ATLAS, the CITADEL orchestrator. Read CLAUDE.md and .citadel/ to understand the framework. Show the user: current phase, what's been done, what's next. If they seem stuck, guide them step by step.`, 'utf-8');
158
- writeFileSync(join(cmdDir, 'citadel-build.md'), `You are the CITADEL build team. Read CLAUDE.md for all rules. Read .citadel/specs/ for requirements. Build following Maker→Checker flow. Always state which agent you're acting as. Chinese Wall: after building, switch to a checker agent to review.`, 'utf-8');
159
- writeFileSync(join(cmdDir, 'citadel-review.md'), `You are the CITADEL checker team. Review the entire codebase against:
160
- - 🔍 GUIDO: naming, SRP, DRY, anti-patterns
161
- - 🧪 KENT: test coverage (80%+), test pyramid
162
- - ⚡ BRENDAN: LCP < 2.5s, no N+1, bundle size
163
- - ⚔️ CHARLIE: OWASP Top 10, auth, secrets
164
- - ♿ AARON: WCAG 2.1 AA, keyboard nav, screen readers
165
- Give PASS/FAIL per category with specific line references.`, 'utf-8');
166
- writeFileSync(join(cmdDir, 'citadel-status.md'), `Read .citadel/memory/session.json and .citadel/gates/. Show a status dashboard: current phase, gate progress (checks passed/failed), active agents, and what needs to happen next.`, 'utf-8');
167
- writeFileSync(join(cmdDir, 'citadel-security.md'), `You are 🛡️ BRUCE (CISO). Run a full security audit:
168
- - Secrets management (no hardcoded keys)
169
- - Auth flow (bcrypt/argon2, JWT with short expiry)
170
- - OWASP Top 10 compliance
171
- - Dependency CVE scan
172
- - PII handling (encrypted at rest)
173
- - CSRF/XSS/SQL injection vectors
174
- You have ABSOLUTE VETO POWER. If critical issues found, BLOCK deployment.`, 'utf-8');
161
+ 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');
162
+ writeFileSync(join(cmdDir, 'citadel-build.md'), `Read CLAUDE.md for rules. Read ONLY the team file for the current phase (see PHASED CONTEXT LOADING table). Build following Maker→Checker flow.`, 'utf-8');
163
+ writeFileSync(join(cmdDir, 'citadel-review.md'), `Read the relevant checker team file. Review: code quality, tests (80%+), performance, security (OWASP), accessibility (WCAG). PASS/FAIL per category.`, 'utf-8');
164
+ 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');
165
+ writeFileSync(join(cmdDir, 'citadel-status.md'), `Read .citadel/memory/session.json and .citadel/gates/. Show phase, gate progress, next steps.`, 'utf-8');
175
166
  }
176
167
  export function installCursor(projectPath) {
177
- // .cursorrules — auto-loaded by Cursor
178
168
  writeFileSync(join(projectPath, '.cursorrules'), buildRulesContent(), 'utf-8');
179
- // Commands
180
169
  const cmdDir = join(projectPath, '.cursor', 'commands');
181
170
  mkdirSync(cmdDir, { recursive: true });
182
- writeFileSync(join(cmdDir, 'citadel-help.md'), `Read .cursorrules and .citadel/ directory. Show current phase, agents, and next steps.`, 'utf-8');
183
- writeFileSync(join(cmdDir, 'citadel-build.md'), `Read .cursorrules for rules. Build following Maker→Checker flow. State which agent you're acting as.`, 'utf-8');
184
- writeFileSync(join(cmdDir, 'citadel-review.md'), `Run CITADEL checker team review. PASS/FAIL per category: code quality, tests, performance, security, accessibility.`, 'utf-8');
171
+ writeFileSync(join(cmdDir, 'citadel-help.md'), `Read .cursorrules and .citadel/ directory. Show current phase, next steps.`, 'utf-8');
172
+ writeFileSync(join(cmdDir, 'citadel-build.md'), `Read .cursorrules. Load ONLY the team file for the current phase. Build following Maker→Checker flow.`, 'utf-8');
173
+ writeFileSync(join(cmdDir, 'citadel-review.md'), `Read relevant checker team file. PASS/FAIL per category.`, 'utf-8');
185
174
  }
186
175
  export function installAntigravity(projectPath) {
187
- // GEMINI.md — auto-loaded by Antigravity
188
176
  writeFileSync(join(projectPath, 'GEMINI.md'), buildRulesContent(), 'utf-8');
189
- // .antigravity/rules.md (backup location some setups use)
190
177
  const agDir = join(projectPath, '.antigravity');
191
178
  mkdirSync(agDir, { recursive: true });
192
179
  writeFileSync(join(agDir, 'rules.md'), buildRulesContent(), 'utf-8');
193
180
  }
194
181
  export function installWindsurf(projectPath) {
195
- // .windsurfrules — auto-loaded by Windsurf
196
182
  writeFileSync(join(projectPath, '.windsurfrules'), buildRulesContent(), 'utf-8');
197
183
  }
198
184
  export function installAllIDEs(projectPath) {
@@ -201,4 +187,5 @@ export function installAllIDEs(projectPath) {
201
187
  installAntigravity(projectPath);
202
188
  installWindsurf(projectPath);
203
189
  }
190
+ export { writeTeamFiles };
204
191
  //# 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,6EAA6E;AAC7E,kEAAkE;AAElE,OAAO,EAAc,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAkB,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAExF,0DAA0D;AAC1D,SAAS,iBAAiB;IACxB,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,UAAU;IACV,WAAW,IAAI,qCAAqC,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,WAAW,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,IAAI,CAAC;IAC9E,CAAC;IAED,SAAS;IACT,WAAW,IAAI,wBAAwB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,WAAW,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,IAAI,CAAC;IAC9E,CAAC;IAED,WAAW;IACX,WAAW,IAAI,6BAA6B,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,WAAW,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,IAAI,CAAC;IAC9E,CAAC;IAED,OAAO;;kCAEyB,CAAC,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CvC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEZ,CAAC;AACF,CAAC;AAED,6BAA6B;AAE7B,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,yCAAyC;IACzC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5E,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,8MAA8M,EAAE,OAAO,CAAC,CAAC;IAExQ,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,wPAAwP,EAAE,OAAO,CAAC,CAAC;IAEnT,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;;;;;;2DAMQ,EAAE,OAAO,CAAC,CAAC;IAEpE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,oLAAoL,EAAE,OAAO,CAAC,CAAC;IAEhP,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;;;;;;;0EAOqB,EAAE,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,uCAAuC;IACvC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;IAE/E,WAAW;IACX,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,wFAAwF,EAAE,OAAO,CAAC,CAAC;IAClJ,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,sGAAsG,EAAE,OAAO,CAAC,CAAC;IACjK,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,qHAAqH,EAAE,OAAO,CAAC,CAAC;AACnL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,yCAAyC;IACzC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;IAE5E,0DAA0D;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,2CAA2C;IAC3C,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/B,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3B,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC"}
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
@@ -50,7 +50,7 @@ After init, you can also use slash commands in your IDE:
50
50
  `);
51
51
  }
52
52
  else if (cmd === 'version' || cmd === '--version' || cmd === '-v') {
53
- console.log('citadel-ai v1.2.0');
53
+ console.log('citadel-ai v1.4.0');
54
54
  }
55
55
  else {
56
56
  console.log(`Unknown command: ${cmd}\nRun: npx citadel-ai help`);
package/dist/cli/init.js CHANGED
@@ -5,28 +5,59 @@ 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 } from './ide-rules.js';
8
+ import { installAllIDEs, writeTeamFiles } from './ide-rules.js';
9
9
  function ask(q) {
10
10
  const rl = createInterface({ input: process.stdin, output: process.stdout });
11
11
  return new Promise(r => { rl.question(q, a => { rl.close(); r(a.trim()); }); });
12
12
  }
13
+ // ── Full agent persona files (42 individual .md files) ──
13
14
  function writeAgentPersonas(cp) {
14
15
  const d = join(cp, 'agents');
15
16
  mkdirSync(d, { recursive: true });
16
17
  for (const [id, a] of AGENT_REGISTRY) {
17
- writeFileSync(join(d, `${id}.md`), `# ${a.icon} ${a.name} — ${a.title}\n> ${a.subtitle}\n\n**Inspiration:** ${a.inspiration}\n**Philosophy:** "${a.philosophy}"\n**Level:** ${a.level} | **Team:** ${a.team}\n\n## Personality\n${a.personality}\n\n## Voice\n${a.voice}\n\n## Rules (Immutable)\n${a.rules.map(r => `- ${r}`).join('\n')}\n\n## Principles\n${a.principles.map(p => `- ${p}`).join('\n')}\n\n## System Prompt\n${a.systemPrompt}\n`, 'utf-8');
18
+ writeFileSync(join(d, `${id}.md`), [
19
+ `# ${a.icon} ${a.name} — ${a.title}`,
20
+ `> ${a.subtitle}`,
21
+ ``,
22
+ `**Inspiration:** ${a.inspiration}`,
23
+ `**Philosophy:** "${a.philosophy}"`,
24
+ `**Level:** ${a.level} | **Team:** ${a.team}`,
25
+ ``,
26
+ `## Personality`,
27
+ a.personality,
28
+ ``,
29
+ `## Voice`,
30
+ a.voice,
31
+ ``,
32
+ `## Rules (Immutable)`,
33
+ ...a.rules.map(r => `- ${r}`),
34
+ ``,
35
+ `## Principles`,
36
+ ...a.principles.map(p => `- ${p}`),
37
+ ``,
38
+ `## System Prompt`,
39
+ a.systemPrompt,
40
+ ].join('\n') + '\n', 'utf-8');
18
41
  }
19
42
  }
43
+ // ── Spec templates ──
20
44
  function writeSpecTemplates(cp) {
21
45
  const d = join(cp, 'specs');
22
46
  mkdirSync(d, { recursive: true });
23
- writeFileSync(join(d, 'prd.md'), `# Product Requirements Document\n\n## Problem Statement\n<!-- What problem are we solving? -->\n\n## Target Users\n\n## Success Metrics\n\n## User Stories\n<!-- As a [user], I want [action] so that [outcome] -->\n\n## Scope\n### In Scope\n### Out of Scope\n`, 'utf-8');
24
- writeFileSync(join(d, 'adr.md'), `# Architecture Decision Records\n\n<!-- ADRs will be appended by LINUS (CTO) -->\n`, 'utf-8');
25
- writeFileSync(join(d, 'security.md'), `# Security Requirements\n\n## Authentication\n## Authorization\n## Data Protection\n## Compliance\n## Threat Model\n\n<!-- Reviewed by BRUCE (CISO) ABSOLUTE VETO POWER -->\n`, 'utf-8');
26
- writeFileSync(join(d, 'data-model.md'), `# Data Model\n\n## Entities\n## Relationships\n## Indexes\n## Migration Plan\n\n<!-- Designed by CODD, reviewed by DATE -->\n`, 'utf-8');
27
- writeFileSync(join(d, 'growth.md'), `# Growth Strategy\n\n## Metrics & KPIs\n## Analytics Plan\n## SEO Strategy\n## Growth Loops\n\n<!-- Owned by SEAN (CGO) -->\n`, 'utf-8');
47
+ writeFileSync(join(d, 'prd.md'), [
48
+ '# Product Requirements Document', '',
49
+ '## Problem Statement', '<!-- What problem are we solving? -->', '',
50
+ '## Target Users', '',
51
+ '## Success Metrics', '',
52
+ '## User Stories', '<!-- As a [user], I want [action] so that [outcome] -->', '',
53
+ '## Scope', '### In Scope', '### Out of Scope',
54
+ ].join('\n') + '\n', 'utf-8');
55
+ writeFileSync(join(d, 'adr.md'), '# Architecture Decision Records\n\n<!-- ADRs appended by LINUS (CTO) -->\n', 'utf-8');
56
+ writeFileSync(join(d, 'security.md'), '# Security Requirements\n\n## Authentication\n## Authorization\n## Data Protection\n## Compliance\n## Threat Model\n\n<!-- Reviewed by BRUCE (CISO) — ABSOLUTE VETO POWER -->\n', 'utf-8');
57
+ writeFileSync(join(d, 'data-model.md'), '# Data Model\n\n## Entities\n## Relationships\n## Indexes\n## Migration Plan\n\n<!-- Designed by CODD, reviewed by DATE -->\n', 'utf-8');
58
+ writeFileSync(join(d, 'growth.md'), '# Growth Strategy\n\n## Metrics & KPIs\n## Analytics Plan\n## SEO Strategy\n## Growth Loops\n\n<!-- Owned by SEAN (CGO) -->\n', 'utf-8');
28
59
  }
29
- // ═══ MAIN ═══
60
+ // ═══ MAIN INIT ═══
30
61
  export async function initCommand(targetPath) {
31
62
  const pp = targetPath ?? process.cwd();
32
63
  const cp = join(pp, '.citadel');
@@ -39,28 +70,37 @@ export async function initCommand(targetPath) {
39
70
  }
40
71
  }
41
72
  console.log('\n⏳ Installing CITADEL...\n');
42
- // Scaffold .citadel/
43
- for (const d of [cp, join(cp, 'memory'), join(cp, 'gates'), join(cp, 'specs'), join(cp, 'agents')]) {
73
+ // Scaffold directories
74
+ for (const d of [cp, join(cp, 'memory'), join(cp, 'gates'), join(cp, 'specs'), join(cp, 'agents'), join(cp, 'teams')]) {
44
75
  mkdirSync(d, { recursive: true });
45
76
  }
46
- // Config (minimalno LLM choice, user picks in their IDE)
47
- writeFileSync(join(cp, 'citadel.config.json'), JSON.stringify({ version: '1.0.0', features: { autoGates: true, persistentMemory: true, chineseWalls: true } }, null, 2), 'utf-8');
48
- // Init systems
77
+ // Config (robustincludes LLM defaults that run.ts can override from env)
78
+ writeFileSync(join(cp, 'citadel.config.json'), JSON.stringify({
79
+ version: '1.4.0',
80
+ features: { autoGates: true, persistentMemory: true, chineseWalls: true },
81
+ }, null, 2), 'utf-8');
82
+ // Init memory & gates
49
83
  new Memory(pp).initSession();
50
84
  new GateSystem(pp).initAllGates();
51
- // Agent personas + spec templates
85
+ // Agent personas 42 individual files (full reference)
52
86
  writeAgentPersonas(cp);
87
+ // Team files — 10 files (phased loading for IDEs)
88
+ writeTeamFiles(cp);
89
+ // Spec templates
53
90
  writeSpecTemplates(cp);
54
- // Install ALL IDE rules (Claude Code, Cursor, Antigravity, Windsurf)
91
+ // IDE rules (Claude Code, Cursor, Antigravity, Windsurf)
55
92
  installAllIDEs(pp);
56
- console.log(' ✅ CLAUDE.md Claude Code');
57
- console.log(' ✅ .cursorrules Cursor');
58
- console.log(' ✅ GEMINI.md Antigravity');
59
- console.log(' ✅ .windsurfrules Windsurf');
60
- console.log(' ✅ Slash commands Claude Code + Cursor');
93
+ console.log(' ✅ .citadel/agents/ 42 agent personas (full reference)');
94
+ console.log(' ✅ .citadel/teams/ 10 team files (phased loading for IDE)');
95
+ console.log(' ✅ .citadel/specs/ PRD, ADR, Security, Data Model, Growth');
96
+ console.log(' ✅ CLAUDE.md Claude Code');
97
+ console.log(' ✅ .cursorrules — Cursor');
98
+ console.log(' ✅ GEMINI.md — Antigravity');
99
+ console.log(' ✅ .windsurfrules — Windsurf');
100
+ console.log(' ✅ Slash commands — Claude Code + Cursor');
61
101
  // .gitignore
62
102
  const gi = join(pp, '.gitignore');
63
- const giContent = '\n# CITADEL state (specs + agents are committed)\n.citadel/memory/\n.citadel/gates/\n';
103
+ const giContent = '\n# CITADEL state (agents + teams + specs are committed)\n.citadel/memory/\n.citadel/gates/\n';
64
104
  if (existsSync(gi)) {
65
105
  if (!readFileSync(gi, 'utf-8').includes('.citadel/memory'))
66
106
  appendFileSync(gi, giContent);
@@ -72,13 +112,17 @@ export async function initCommand(targetPath) {
72
112
  console.log(`
73
113
  ✅ CITADEL installed! ${c.total} agents ready.
74
114
 
75
- Open your IDE and start building:
76
- Claude Code /citadel-help
77
- Cursor → /citadel-help
78
- Antigravity just start chatting (reads GEMINI.md)
79
- Windsurf → just start chatting (reads .windsurfrules)
115
+ .citadel/
116
+ ├── agents/ 42 full agent personas (reference)
117
+ ├── teams/ 10 team files (loaded per phase by IDE)
118
+ ├── specs/ PRD, ADR, Security, Data, Growth
119
+ ├── memory/ Session state (gitignored)
120
+ └── gates/ Gate progress (gitignored)
80
121
 
81
- Or run: npx citadel-ai run (interactive CLI)
122
+ IDE: Open your project → /citadel-help (Claude Code/Cursor)
123
+ or just start chatting (Antigravity/Windsurf)
124
+
125
+ CLI: npx citadel-ai run (needs ANTHROPIC_API_KEY or OPENAI_API_KEY)
82
126
  `);
83
127
  }
84
128
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
package/dist/cli/run.js CHANGED
@@ -3,26 +3,48 @@ import { join } from 'node:path';
3
3
  import { createInterface } from 'node:readline';
4
4
  import { Orchestrator } from '../core/orchestrator.js';
5
5
  import { banner, loadUI, divider } from '../ui/terminal.js';
6
+ function detectLLM() {
7
+ const anthropicKey = process.env.ANTHROPIC_API_KEY;
8
+ if (anthropicKey)
9
+ return { provider: 'anthropic', model: 'claude-sonnet-4-20250514', apiKey: anthropicKey };
10
+ const openaiKey = process.env.OPENAI_API_KEY;
11
+ if (openaiKey)
12
+ return { provider: 'openai', model: 'gpt-4o', apiKey: openaiKey };
13
+ return null;
14
+ }
6
15
  export async function runCommand() {
7
- const pp = process.cwd(), cp = join(pp, '.citadel', 'citadel.config.json');
8
- if (!existsSync(cp)) {
9
- console.log('❌ Run: npx citadel init');
16
+ const pp = process.cwd();
17
+ const configPath = join(pp, '.citadel', 'citadel.config.json');
18
+ if (!existsSync(configPath)) {
19
+ console.log('❌ No CITADEL project found. Run: npx citadel-ai init');
10
20
  process.exit(1);
11
21
  }
12
- const raw = JSON.parse(readFileSync(cp, 'utf-8'));
13
- const ek = raw.llm.provider === 'anthropic' ? 'ANTHROPIC_API_KEY' : 'OPENAI_API_KEY';
14
- const ak = process.env[ek];
15
- if (!ak) {
16
- console.log(`❌ Missing ${ek}`);
22
+ // Detect LLM from environment
23
+ const llm = detectLLM();
24
+ if (!llm) {
25
+ console.log(`❌ No API key found. Set one of these environment variables:\n`);
26
+ console.log(` export ANTHROPIC_API_KEY=sk-ant-...`);
27
+ console.log(` export OPENAI_API_KEY=sk-...\n`);
28
+ console.log(`💡 The interactive CLI needs an API key. For IDE-only usage,`);
29
+ console.log(` just open your project in Claude Code, Cursor, or Antigravity.\n`);
17
30
  process.exit(1);
18
31
  }
19
- const config = { ...raw, projectPath: pp, citadelPath: join(pp, '.citadel'), llm: { ...raw.llm, apiKey: ak } };
32
+ // Build config
33
+ const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
34
+ const config = {
35
+ version: raw.version ?? '1.4.0',
36
+ llm: { ...llm, maxTokens: 4096, temperature: 0.7 },
37
+ projectPath: pp,
38
+ citadelPath: join(pp, '.citadel'),
39
+ features: raw.features ?? { webResearch: true, autoGates: true, persistentMemory: true, chineseWalls: true },
40
+ };
20
41
  try {
21
42
  await loadUI();
22
43
  }
23
44
  catch { }
24
45
  console.log(banner());
25
- console.log('Type message. "help" if stuck. "exit" to quit.\n');
46
+ console.log(` Using: ${llm.provider} (${llm.model})\n`);
47
+ console.log('Type your message. "help" if stuck. "exit" to quit.\n');
26
48
  const orc = new Orchestrator(config);
27
49
  console.log(await orc.processMessage('hello'));
28
50
  const rl = createInterface({ input: process.stdin, output: process.stdout, prompt: '\n💬 You: ' });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACjF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAkB,CAAC;IACnE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACrF,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACzF,MAAM,MAAM,GAAkB,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7H,IAAI,CAAC;QAAC,MAAM,MAAM,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACnG,EAAE,CAAC,MAAM,EAAE,CAAC;IACZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACxD,IAAI,CAAC,CAAC,WAAW,EAAE,KAAG,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,CAAC,CAAC,WAAW,EAAE,KAAG,QAAQ,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAC,UAAU,CAAC,CAAC,YAAY,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACtP,IAAI,CAAC,CAAC,WAAW,EAAE,KAAG,SAAS,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAChG,IAAI,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QACnG,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "citadel-ai",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "Enterprise AI dev framework. 42 agents. C-suite governance. Chinese walls. Persistent memory. You talk, they build.",
5
5
  "keywords": [
6
6
  "ai",
@@ -18,11 +18,11 @@
18
18
  "author": "CITADEL Contributors",
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "https://github.com/YOUR_USERNAME/citadel-ai.git"
21
+ "url": "https://github.com/nbabderrahmane/citadel-ai.git"
22
22
  },
23
- "homepage": "https://github.com/YOUR_USERNAME/citadel-ai#readme",
23
+ "homepage": "https://github.com/nbabderrahmane/citadel-ai#readme",
24
24
  "bugs": {
25
- "url": "https://github.com/YOUR_USERNAME/citadel-ai/issues"
25
+ "url": "https://github.com/nbabderrahmane/citadel-ai/issues"
26
26
  },
27
27
  "type": "module",
28
28
  "main": "./dist/index.js",