facult 1.2.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # facult
1
+ # fclt
2
2
 
3
3
  <div align="center">
4
4
  <a aria-label="NPM version" href="https://www.npmjs.com/package/facult">
@@ -15,34 +15,41 @@
15
15
  </a>
16
16
  </div>
17
17
 
18
- `facult` is a CLI for managing canonical AI capability across tools, users, and projects.
18
+ `fclt` is a CLI for building and evolving AI faculties across tools, users, and projects.
19
+
20
+ Most AI tooling manages files. `fclt` manages faculties: the instructions, snippets, templates, skills, agents, rules, and learning loops that should compound, improve, and survive the next session.
19
21
 
20
22
  It helps you:
21
- - discover what is installed on your machine
22
- - consolidate everything into one canonical store
23
- - review trust/security before installing remote content
24
- - sync managed outputs into Codex, Cursor, and Claude
25
- - manage a git-backed AI store under `~/.ai` and repo-local `.ai/`
26
- - model relationships between instructions, snippets, agents, skills, and rendered tool outputs
23
+ - turn repeated friction into reusable capability
27
24
  - preserve learning through writeback and evolve canonical assets over time
25
+ - consolidate AI behavior into one canonical store
26
+ - compose prompts, agents, skills, and tool outputs from reusable snippets and templates
27
+ - discover what exists, what depends on what, and what should change next
28
+ - sync managed outputs into Codex, Cursor, and Claude
29
+ - review trust/security before installing remote content
30
+ - keep that operating layer in a git-backed store under `~/.ai` and repo-local `.ai/`
28
31
 
29
- ## What facult Is
32
+ ## What fclt Is
30
33
 
31
- If your agent setup feels scattered (`~/.codex`, `~/.agents`, tool-specific MCP JSON/TOML), `facult` gives you one place to manage it safely.
34
+ If your agent setup feels scattered, `fclt` gives it memory, structure, and a way to improve.
35
+
36
+ A faculty is a reusable piece of AI behavior: an instruction, snippet, template, skill, agent, rule, or learned improvement that you want to keep around and make better.
37
+
38
+ That matters because a lot of useful AI behavior is compositional. You want small reusable blocks, a clean way to assemble them into bigger prompts and operating layers, and a safe way to render the final tool-native outputs without losing the source structure.
32
39
 
33
40
  Think of it as:
34
- - inventory + auditing for agent assets
35
- - package manager interface for skill/MCP catalogs
36
- - sync layer that applies your chosen setup to each tool
37
- - canonical source manager for global and project AI instructions, snippets, agents, skills, tool configs, and rules
38
- - a local capability graph for discovering what exists and what depends on what
41
+ - a canonical home for your AI faculties
42
+ - a composition system for snippets, templates, and rendered AI behavior
43
+ - a sync layer for projecting them into real tools
44
+ - a discovery graph for seeing what exists and what depends on what
39
45
  - a writeback/evolution loop for turning repeated friction into durable improvements
46
+ - an inventory and trust boundary for the assets you let into the system
40
47
 
41
- ## What facult Does
48
+ ## What fclt Does
42
49
 
43
- `facult` is not just a skill manager.
50
+ `fclt` is not a skills folder with a nicer CLI.
44
51
 
45
- It provides five connected layers:
52
+ It works as five connected layers:
46
53
 
47
54
  1. Canonical source
48
55
  - global capability in `~/.ai`
@@ -65,7 +72,7 @@ It provides five connected layers:
65
72
 
66
73
  ## Default Operating Model
67
74
 
68
- `facult` ships with a built-in Facult operating-model pack. That pack includes default:
75
+ `fclt` ships with a built-in operating model for learning, writeback, and capability evolution. That pack includes default:
69
76
 
70
77
  - instructions for evolution, integration, and project capability
71
78
  - specialist agents such as `writeback-curator`, `evolution-planner`, and `scope-promoter`
@@ -76,14 +83,14 @@ When managed sync is enabled, these built-in assets are available by default eve
76
83
  That means:
77
84
  - builtin skills sync into managed tool skill directories by default
78
85
  - builtin agents sync into tool agent directories when the tool supports agents
79
- - if you do not author your own `AGENTS.global.md`, `facult` renders a builtin global baseline doc into tool-native global docs
86
+ - if you do not author your own `AGENTS.global.md`, `fclt` renders a builtin global baseline doc into tool-native global docs
80
87
 
81
88
  This is intentionally virtual at the canonical level:
82
89
  - builtin defaults remain part of the packaged tool
83
90
  - your personal `~/.ai` stays clean unless you explicitly vendor or override something
84
91
  - the live tool output on disk still contains the rendered defaults, so users and agents can read them directly
85
92
 
86
- In practice, this means you do not need to drive writeback and evolution through the CLI alone. The default skills, agents, and global docs are meant to make that operating model available automatically.
93
+ In practice, this means the system is meant to learn by default. The CLI is there when you want to operate it directly, but the default skills, agents, and global docs are supposed to make writeback and evolution available without ceremony.
87
94
 
88
95
  If you want to disable the builtin default layer for a specific global or project canonical root:
89
96
 
@@ -100,11 +107,11 @@ Put that in `config.toml` or `config.local.toml` under the active canonical root
100
107
 
101
108
  ### Canonical vs rendered
102
109
 
103
- `facult` separates source-of-truth from tool-native output.
110
+ `fclt` separates source-of-truth from tool-native output.
104
111
 
105
112
  - canonical source lives in `~/.ai` or `<repo>/.ai`
106
113
  - rendered outputs live in tool homes like `~/.codex`, `<repo>/.codex`, `~/.claude`, or `~/.cursor`
107
- - generated state lives in `~/.facult` or `<repo>/.facult`
114
+ - generated Facult-owned state lives in `~/.ai/.facult` or `<repo>/.ai/.facult`
108
115
 
109
116
  This keeps authored capability portable and reviewable while still producing the exact files each tool expects.
110
117
 
@@ -126,7 +133,7 @@ Project capability is allowed to extend or shadow global capability in merged vi
126
133
 
127
134
  ### The capability graph
128
135
 
129
- `facult` builds a generated graph of explicit relationships between canonical assets and rendered outputs.
136
+ `fclt` builds a generated graph of explicit relationships between canonical assets and rendered outputs.
130
137
 
131
138
  That graph tracks things like:
132
139
  - snippet markers
@@ -142,22 +149,24 @@ This makes it possible to answer:
142
149
 
143
150
  ### Writeback and evolution
144
151
 
145
- `facult` treats repeated failures, weak loops, missing context, and reusable patterns as signal worth preserving.
152
+ `fclt` treats repeated failures, weak loops, missing context, and reusable patterns as signal worth preserving.
146
153
 
147
154
  Writeback is the act of recording that signal in a structured way.
148
155
  Evolution is the act of grouping that signal into reviewable proposals and applying it back into canonical assets.
149
156
 
150
- This matters because otherwise the same problems repeat in chat without ever improving the actual operating layer. With `facult`, you can:
157
+ This matters because otherwise the same problems repeat in chat without ever improving the actual operating layer. With `fclt`, you can:
151
158
  - record a weak verification pattern
152
159
  - group repeated writebacks around an instruction or agent
153
160
  - draft a proposal to tighten that canonical asset
154
161
  - review and apply the change in a controlled way
155
162
 
156
- The result is that your AI system can get better over time without hiding mutations in tool-specific state or losing the reasoning behind a change.
163
+ The point is not just better storage. The point is that your AI setup can change shape as it learns.
164
+
165
+ That is the core idea behind `fclt`: not just syncing skills, but growing faculties.
157
166
 
158
167
  ## Quick Start
159
168
 
160
- ### 1. Install facult
169
+ ### 1. Install fclt
161
170
 
162
171
  Recommended global install:
163
172
 
@@ -165,45 +174,46 @@ Recommended global install:
165
174
  npm install -g facult
166
175
  # or
167
176
  bun add -g facult
168
- facult --help
177
+ fclt --help
169
178
  ```
170
179
 
180
+ The npm package name stays `facult` for registry compatibility. The installed command is still `fclt`.
181
+
171
182
  One-off usage without global install:
172
183
 
173
184
  ```bash
174
- npx facult --help
175
- bunx facult --help
185
+ npx --yes -p facult fclt --help
176
186
  ```
177
187
 
178
188
  Direct binary install from GitHub Releases (macOS/Linux):
179
189
 
180
190
  ```bash
181
- curl -fsSL https://github.com/hack-dance/facult/releases/latest/download/facult-install.sh | bash
191
+ curl -fsSL https://github.com/hack-dance/facult/releases/latest/download/fclt-install.sh | bash
182
192
  ```
183
193
 
184
194
  Windows and manual installs can download the correct binary from each release page:
185
- `facult-<version>-<platform>-<arch>`.
195
+ `fclt-<version>-<platform>-<arch>`.
186
196
 
187
197
  Update later with:
188
198
 
189
199
  ```bash
190
- facult self-update
200
+ fclt self-update
191
201
  # or
192
- facult update --self
202
+ fclt update --self
193
203
  ```
194
204
 
195
205
  Pin to a specific version:
196
206
 
197
207
  ```bash
198
- facult self-update --version 0.0.1
208
+ fclt self-update --version 0.0.1
199
209
  ```
200
210
 
201
211
  ### 2. Start with a read-only inventory (recommended first)
202
212
 
203
213
  ```bash
204
- facult scan --show-duplicates
214
+ fclt scan --show-duplicates
205
215
  # optional machine-readable output
206
- facult scan --json
216
+ fclt scan --json
207
217
  ```
208
218
 
209
219
  `scan` is read-only. It inspects local configs and reports what `facult` found without changing files.
@@ -211,68 +221,68 @@ facult scan --json
211
221
  ### 3. Import existing skills/configs
212
222
 
213
223
  ```bash
214
- facult consolidate --auto keep-current --from ~/.codex/skills --from ~/.agents/skills
215
- facult index
224
+ fclt consolidate --auto keep-current --from ~/.codex/skills --from ~/.agents/skills
225
+ fclt index
216
226
  ```
217
227
 
218
228
  Why `keep-current`: it is deterministic and non-interactive for duplicate sources.
219
229
 
220
- Canonical source root: `~/.ai` for global work, or `<repo>/.ai` for project-local work. Generated state lives next to the active canonical root:
221
- - global: `~/.facult`
222
- - project: `<repo>/.facult`
230
+ Canonical source root: `~/.ai` for global work, or `<repo>/.ai` for project-local work. Facult-owned generated/config/runtime state lives inside the active canonical root:
231
+ - global: `~/.ai/.facult`
232
+ - project: `<repo>/.ai/.facult`
223
233
 
224
234
  ### 3b. Bootstrap a repo-local `.ai`
225
235
 
226
236
  ```bash
227
237
  cd /path/to/repo
228
- bunx facult templates init project-ai
229
- bunx facult index
238
+ bunx fclt templates init project-ai
239
+ bunx fclt index
230
240
  ```
231
241
 
232
- This seeds `<repo>/.ai` from the built-in Facult operating-model pack and writes a merged project index/graph under `<repo>/.facult/ai/`.
242
+ This seeds `<repo>/.ai` from the built-in Facult operating-model pack and writes a merged project index/graph under `<repo>/.ai/.facult/ai/`.
233
243
 
234
244
  ### 4. Inspect what you have
235
245
 
236
246
  ```bash
237
- facult list skills
238
- facult list instructions
239
- facult list mcp
240
- facult show requesting-code-review
241
- facult show instruction:WRITING
242
- facult show mcp:github
243
- facult find verification
244
- facult graph show instruction:WRITING
245
- facult graph deps AGENTS.global.md
246
- facult graph dependents @ai/instructions/WRITING.md
247
- facult ai writeback add --kind weak_verification --summary "Checks were too shallow" --asset instruction:VERIFICATION
248
- facult ai evolve propose
249
- facult ai evolve draft EV-00001
250
- facult ai evolve accept EV-00001
251
- facult ai evolve apply EV-00001
247
+ fclt list skills
248
+ fclt list instructions
249
+ fclt list mcp
250
+ fclt show requesting-code-review
251
+ fclt show instruction:WRITING
252
+ fclt show mcp:github
253
+ fclt find verification
254
+ fclt graph show instruction:WRITING
255
+ fclt graph deps AGENTS.global.md
256
+ fclt graph dependents @ai/instructions/WRITING.md
257
+ fclt ai writeback add --kind weak_verification --summary "Checks were too shallow" --asset instruction:VERIFICATION
258
+ fclt ai evolve propose
259
+ fclt ai evolve draft EV-00001
260
+ fclt ai evolve accept EV-00001
261
+ fclt ai evolve apply EV-00001
252
262
  ```
253
263
 
254
264
  Context controls:
255
265
 
256
266
  ```bash
257
- facult list instructions --global
258
- facult list instructions --project
259
- facult find verification --scope merged --source project
260
- facult sync codex --project
261
- facult autosync status --global
262
- facult list agents --root /path/to/repo/.ai
267
+ fclt list instructions --global
268
+ fclt list instructions --project
269
+ fclt find verification --scope merged --source project
270
+ fclt sync codex --project
271
+ fclt autosync status --global
272
+ fclt list agents --root /path/to/repo/.ai
263
273
  ```
264
274
 
265
275
  ### 5. Enable managed mode for your tools
266
276
 
267
277
  ```bash
268
- facult manage codex --dry-run
269
- facult manage codex --adopt-existing
270
- facult sync codex --builtin-conflicts overwrite
271
- facult manage cursor
272
- facult manage claude
278
+ fclt manage codex --dry-run
279
+ fclt manage codex --adopt-existing
280
+ fclt sync codex --builtin-conflicts overwrite
281
+ fclt manage cursor
282
+ fclt manage claude
273
283
 
274
- facult enable requesting-code-review receiving-code-review brainstorming systematic-debugging --for codex,cursor,claude
275
- facult sync
284
+ fclt enable requesting-code-review receiving-code-review brainstorming systematic-debugging --for codex,cursor,claude
285
+ fclt sync
276
286
  ```
277
287
 
278
288
  At this point, your selected skills are actively synced to all managed tools.
@@ -283,8 +293,8 @@ For builtin-backed rendered defaults, `facult` now tracks the last managed rende
283
293
  ### 6. Turn on background autosync
284
294
 
285
295
  ```bash
286
- facult autosync install --git-remote origin --git-branch main --git-interval-minutes 60
287
- facult autosync status
296
+ fclt autosync install --git-remote origin --git-branch main --git-interval-minutes 60
297
+ fclt autosync status
288
298
  ```
289
299
 
290
300
  This installs a macOS LaunchAgent that:
@@ -297,14 +307,14 @@ If the repo hits a rebase conflict, remote autosync stops and reports the blocke
297
307
  ### 7. Turn on source trust and strict install flow
298
308
 
299
309
  ```bash
300
- facult sources list
301
- facult verify-source skills.sh --json
302
- facult sources trust skills.sh --note "reviewed"
310
+ fclt sources list
311
+ fclt verify-source skills.sh --json
312
+ fclt sources trust skills.sh --note "reviewed"
303
313
 
304
- facult install skills.sh:code-review --as code-review-skills-sh --strict-source-trust
314
+ fclt install skills.sh:code-review --as code-review-skills-sh --strict-source-trust
305
315
  ```
306
316
 
307
- ## Use facult from your agents
317
+ ## Use fclt from your agents
308
318
 
309
319
  `facult` is CLI-first. The practical setup is:
310
320
  1. Install `facult` globally so any agent runtime can execute it.
@@ -313,24 +323,24 @@ facult install skills.sh:code-review --as code-review-skills-sh --strict-source-
313
323
 
314
324
  ```bash
315
325
  # Scaffold reusable templates in the canonical store
316
- facult templates init agents
317
- facult templates init claude
318
- facult templates init skill facult-manager
326
+ fclt templates init agents
327
+ fclt templates init claude
328
+ fclt templates init skill facult-manager
319
329
 
320
330
  # Enable that skill for managed tools
321
- facult manage codex
322
- facult manage cursor
323
- facult manage claude
324
- facult enable facult-manager --for codex,cursor,claude
325
- facult sync
331
+ fclt manage codex
332
+ fclt manage cursor
333
+ fclt manage claude
334
+ fclt enable facult-manager --for codex,cursor,claude
335
+ fclt sync
326
336
  ```
327
337
 
328
338
  Optional MCP scaffold:
329
339
 
330
340
  ```bash
331
- facult templates init mcp facult-cli
332
- facult enable mcp:facult-cli --for codex,cursor,claude
333
- facult sync
341
+ fclt templates init mcp facult-cli
342
+ fclt enable mcp:facult-cli --for codex,cursor,claude
343
+ fclt sync
334
344
  ```
335
345
 
336
346
  Note: `templates init mcp ...` is a scaffold, not a running server by itself.
@@ -365,19 +375,19 @@ Typical layout:
365
375
  agents/
366
376
  skills/
367
377
  tools/
368
- .facult/
369
- ai/
370
- index.json
371
- graph.json
378
+ .facult/
379
+ ai/
380
+ index.json
381
+ graph.json
372
382
  .codex/
373
383
  .claude/
374
384
  ```
375
385
 
376
386
  Important split:
377
387
  - `.ai/` is canonical source
378
- - `.facult/` is generated state, trust state, managed tool state, autosync state, and caches
388
+ - `.ai/.facult/` is Facult-owned generated state, trust state, managed tool state, autosync state, and caches
379
389
  - tool homes such as `.codex/` and `.claude/` are rendered outputs
380
- - the generated capability graph lives at `.facult/ai/graph.json`
390
+ - the generated capability graph lives at `.ai/.facult/ai/graph.json`
381
391
 
382
392
  ### Asset types
383
393
 
@@ -408,11 +418,9 @@ Not every asset syncs directly to a tool. Some exist primarily to support render
408
418
 
409
419
  Canonical render context is layered explicitly:
410
420
  1. built-ins injected by `facult`
411
- 2. `~/.ai/config.toml`
412
- 3. `~/.ai/config.local.toml`
413
- 4. `~/.ai/projects/<slug>/config.toml`
414
- 5. `~/.ai/projects/<slug>/config.local.toml`
415
- 6. explicit runtime overrides
421
+ 2. active canonical root `config.toml`
422
+ 3. active canonical root `config.local.toml`
423
+ 4. explicit runtime overrides
416
424
 
417
425
  Built-ins currently include:
418
426
  - `AI_ROOT`
@@ -423,10 +431,10 @@ Built-ins currently include:
423
431
  - `TARGET_PATH`
424
432
 
425
433
  Recommended split:
426
- - `config.toml`: tracked, portable, non-secret refs/defaults
427
- - `config.local.toml`: ignored, machine-local paths and secrets
434
+ - `~/.ai/config.toml` or `<repo>/.ai/config.toml`: tracked, portable, non-secret refs/defaults
435
+ - `~/.ai/config.local.toml` or `<repo>/.ai/config.local.toml`: ignored, machine-local paths and secrets
428
436
  - `[builtin].sync_defaults = false`: disable builtin default sync/materialization for this root
429
- - `facult sync --builtin-conflicts overwrite`: allow packaged builtin defaults to overwrite locally modified generated targets
437
+ - `fclt sync --builtin-conflicts overwrite`: allow packaged builtin defaults to overwrite locally modified generated targets
430
438
 
431
439
  ### Snippets
432
440
 
@@ -444,21 +452,21 @@ Resolution rules:
444
452
  Commands:
445
453
 
446
454
  ```bash
447
- facult snippets list
448
- facult snippets show global/codex/baseline
449
- facult snippets sync [--dry-run] [file...]
455
+ fclt snippets list
456
+ fclt snippets show global/codex/baseline
457
+ fclt snippets sync [--dry-run] [file...]
450
458
  ```
451
459
 
452
460
  Snippets are already used during global Codex `AGENTS.md` rendering.
453
461
 
454
462
  ### Graph inspection
455
463
 
456
- The generated graph in `.facult/ai/graph.json` is queryable directly:
464
+ The generated graph in `.ai/.facult/ai/graph.json` is queryable directly:
457
465
 
458
466
  ```bash
459
- facult graph show instruction:WRITING
460
- facult graph deps AGENTS.global.md
461
- facult graph dependents @project/instructions/TESTING.md
467
+ fclt graph show instruction:WRITING
468
+ fclt graph deps AGENTS.global.md
469
+ fclt graph dependents @project/instructions/TESTING.md
462
470
  ```
463
471
 
464
472
  This is the explicit dependency layer for:
@@ -473,36 +481,36 @@ This is the explicit dependency layer for:
473
481
  `facult` also has a local writeback/evolution substrate built on top of the graph:
474
482
 
475
483
  ```bash
476
- facult ai writeback add \
484
+ fclt ai writeback add \
477
485
  --kind weak_verification \
478
486
  --summary "Verification guidance did not distinguish shallow checks from meaningful proof." \
479
487
  --asset instruction:VERIFICATION \
480
488
  --tag verification \
481
489
  --tag false-positive
482
490
 
483
- facult ai writeback list
484
- facult ai writeback show WB-00001
485
- facult ai writeback group --by asset
486
- facult ai writeback summarize --by kind
487
- facult ai evolve propose
488
- facult ai evolve list
489
- facult ai evolve show EV-00001
490
- facult ai evolve draft EV-00001
491
- facult ai evolve review EV-00001
492
- facult ai evolve accept EV-00001
493
- facult ai evolve reject EV-00001 --reason "Needs a tighter draft"
494
- facult ai evolve supersede EV-00001 --by EV-00002
495
- facult ai evolve apply EV-00001
496
- facult ai evolve promote EV-00003 --to global --project
497
- ```
498
-
499
- Runtime state stays generated and local:
500
- - global writeback state: `~/.facult/ai/global/...`
501
- - project writeback state: `~/.facult/ai/projects/<slug>/...`
491
+ fclt ai writeback list
492
+ fclt ai writeback show WB-00001
493
+ fclt ai writeback group --by asset
494
+ fclt ai writeback summarize --by kind
495
+ fclt ai evolve propose
496
+ fclt ai evolve list
497
+ fclt ai evolve show EV-00001
498
+ fclt ai evolve draft EV-00001
499
+ fclt ai evolve review EV-00001
500
+ fclt ai evolve accept EV-00001
501
+ fclt ai evolve reject EV-00001 --reason "Needs a tighter draft"
502
+ fclt ai evolve supersede EV-00001 --by EV-00002
503
+ fclt ai evolve apply EV-00001
504
+ fclt ai evolve promote EV-00003 --to global --project
505
+ ```
506
+
507
+ Runtime state stays generated and local inside the active canonical root:
508
+ - global writeback state: `~/.ai/.facult/ai/global/...`
509
+ - project writeback state: `<repo>/.ai/.facult/ai/project/...`
502
510
 
503
511
  That split is intentional:
504
512
  - canonical source remains in `~/.ai` or `<repo>/.ai`
505
- - writeback queues, journals, and proposal records stay outside the canonical git-backed tree by default
513
+ - writeback queues, journals, proposal records, trust state, autosync state, and other Facult-owned runtime/config state stay inside `.ai/.facult/` rather than inside the tool homes
506
514
 
507
515
  Use writeback when:
508
516
  - a task exposed a weak or misleading verification loop
@@ -512,7 +520,7 @@ Use writeback when:
512
520
 
513
521
  Do not think of writeback as “taking notes.” Think of it as preserving signal that should change the system, not just the current conversation.
514
522
 
515
- For many users, the normal entrypoint is not the CLI directly. The builtin operating-model layer is designed so synced agents, skills, and global docs can push the system toward writeback and evolution by default, while the `facult ai ...` commands remain the explicit operator surface when you want direct control.
523
+ For many users, the normal entrypoint is not the CLI directly. The builtin operating-model layer is designed so synced agents, skills, and global docs can push the system toward writeback and evolution by default, while the `fclt ai ...` commands remain the explicit operator surface when you want direct control.
516
524
 
517
525
  Current apply semantics are intentionally policy-bound:
518
526
  - targets are resolved through the generated graph when possible and fall back to canonical ref resolution for missing assets
@@ -540,29 +548,29 @@ Most inventory and sync commands support explicit canonical-root selection:
540
548
  ## Security and Trust
541
549
 
542
550
  `facult` has two trust layers:
543
- - Item trust: `facult trust <name>` / `facult untrust <name>`
544
- - Source trust: `facult sources ...` with levels `trusted`, `review`, `blocked`
551
+ - Item trust: `fclt trust <name>` / `fclt untrust <name>`
552
+ - Source trust: `fclt sources ...` with levels `trusted`, `review`, `blocked`
545
553
 
546
554
  `facult` also supports two audit modes:
547
555
 
548
556
  1. Interactive audit workflow:
549
557
  ```bash
550
- facult audit
558
+ fclt audit
551
559
  ```
552
560
  2. Static audit rules (deterministic pattern checks):
553
561
  ```bash
554
- facult audit --non-interactive --severity high
555
- facult audit --non-interactive mcp:github --severity medium --json
562
+ fclt audit --non-interactive --severity high
563
+ fclt audit --non-interactive mcp:github --severity medium --json
556
564
  ```
557
565
  3. Agent-based audit (Claude/Codex review pass):
558
566
  ```bash
559
- facult audit --non-interactive --with claude --max-items 50
560
- facult audit --non-interactive --with codex --max-items all --json
567
+ fclt audit --non-interactive --with claude --max-items 50
568
+ fclt audit --non-interactive --with codex --max-items all --json
561
569
  ```
562
570
 
563
571
  Recommended security flow:
564
- 1. `facult verify-source <source>`
565
- 2. `facult sources trust <source>` only after review
572
+ 1. `fclt verify-source <source>`
573
+ 2. `fclt sources trust <source>` only after review
566
574
  3. use `--strict-source-trust` for `install`/`update`
567
575
  4. run both static and agent audits on a schedule
568
576
 
@@ -581,70 +589,70 @@ Recommended security flow:
581
589
 
582
590
  - Inventory and discovery
583
591
  ```bash
584
- facult scan [--from <path>] [--json] [--show-duplicates]
585
- facult list [skills|mcp|agents|snippets|instructions] [--enabled-for <tool>] [--untrusted] [--flagged] [--pending]
586
- facult show <name>
587
- facult show instruction:<name>
588
- facult show mcp:<name> [--show-secrets]
589
- facult find <query> [--json]
592
+ fclt scan [--from <path>] [--json] [--show-duplicates]
593
+ fclt list [skills|mcp|agents|snippets|instructions] [--enabled-for <tool>] [--untrusted] [--flagged] [--pending]
594
+ fclt show <name>
595
+ fclt show instruction:<name>
596
+ fclt show mcp:<name> [--show-secrets]
597
+ fclt find <query> [--json]
590
598
  ```
591
599
 
592
600
  - Canonical store and migration
593
601
  ```bash
594
- facult consolidate [--auto keep-current|keep-incoming|keep-newest] [--from <path> ...]
595
- facult index [--force]
596
- facult migrate [--from <path>] [--dry-run] [--move] [--write-config]
602
+ fclt consolidate [--auto keep-current|keep-incoming|keep-newest] [--from <path> ...]
603
+ fclt index [--force]
604
+ fclt migrate [--from <path>] [--dry-run] [--move] [--write-config]
597
605
  ```
598
606
 
599
607
  - Managed mode and rollout
600
608
  ```bash
601
- facult manage <tool> [--dry-run] [--adopt-existing] [--existing-conflicts keep-canonical|keep-existing]
602
- facult unmanage <tool>
603
- facult managed
604
- facult enable <name> [--for <tool1,tool2,...>]
605
- facult enable mcp:<name> [--for <tool1,tool2,...>]
606
- facult disable <name> [--for <tool1,tool2,...>]
607
- facult sync [tool] [--dry-run] [--builtin-conflicts overwrite]
608
- facult autosync install [tool] [--git-remote <name>] [--git-branch <name>] [--git-interval-minutes <n>] [--git-disable]
609
- facult autosync status [tool]
610
- facult autosync restart [tool]
611
- facult autosync uninstall [tool]
609
+ fclt manage <tool> [--dry-run] [--adopt-existing] [--existing-conflicts keep-canonical|keep-existing]
610
+ fclt unmanage <tool>
611
+ fclt managed
612
+ fclt enable <name> [--for <tool1,tool2,...>]
613
+ fclt enable mcp:<name> [--for <tool1,tool2,...>]
614
+ fclt disable <name> [--for <tool1,tool2,...>]
615
+ fclt sync [tool] [--dry-run] [--builtin-conflicts overwrite]
616
+ fclt autosync install [tool] [--git-remote <name>] [--git-branch <name>] [--git-interval-minutes <n>] [--git-disable]
617
+ fclt autosync status [tool]
618
+ fclt autosync restart [tool]
619
+ fclt autosync uninstall [tool]
612
620
  ```
613
621
 
614
622
  - Remote catalogs and policies
615
623
  ```bash
616
- facult search <query> [--index <name>] [--limit <n>]
617
- facult install <index:item> [--as <name>] [--force] [--strict-source-trust]
618
- facult update [--apply] [--strict-source-trust]
619
- facult verify-source <name> [--json]
620
- facult sources list
621
- facult sources trust <source> [--note <text>]
622
- facult sources review <source> [--note <text>]
623
- facult sources block <source> [--note <text>]
624
- facult sources clear <source>
624
+ fclt search <query> [--index <name>] [--limit <n>]
625
+ fclt install <index:item> [--as <name>] [--force] [--strict-source-trust]
626
+ fclt update [--apply] [--strict-source-trust]
627
+ fclt verify-source <name> [--json]
628
+ fclt sources list
629
+ fclt sources trust <source> [--note <text>]
630
+ fclt sources review <source> [--note <text>]
631
+ fclt sources block <source> [--note <text>]
632
+ fclt sources clear <source>
625
633
  ```
626
634
 
627
635
  - Templates and snippets
628
636
  ```bash
629
- facult templates list
630
- facult templates init project-ai
631
- facult templates init skill <name>
632
- facult templates init mcp <name>
633
- facult templates init snippet <marker>
634
- facult templates init agents
635
- facult templates init claude
637
+ fclt templates list
638
+ fclt templates init project-ai
639
+ fclt templates init skill <name>
640
+ fclt templates init mcp <name>
641
+ fclt templates init snippet <marker>
642
+ fclt templates init agents
643
+ fclt templates init claude
636
644
 
637
- facult snippets list
638
- facult snippets show <marker>
639
- facult snippets create <marker>
640
- facult snippets edit <marker>
641
- facult snippets sync [--dry-run] [file...]
645
+ fclt snippets list
646
+ fclt snippets show <marker>
647
+ fclt snippets create <marker>
648
+ fclt snippets edit <marker>
649
+ fclt snippets sync [--dry-run] [file...]
642
650
  ```
643
651
 
644
652
  For full flags and exact usage:
645
653
  ```bash
646
- facult --help
647
- facult <command> --help
654
+ fclt --help
655
+ fclt <command> --help
648
656
  ```
649
657
 
650
658
  ### Root resolution
@@ -652,7 +660,7 @@ facult <command> --help
652
660
  `facult` resolves the canonical root in this order:
653
661
  1. `FACULT_ROOT_DIR`
654
662
  2. nearest project `.ai` from the current working directory for CLI-facing commands
655
- 3. `~/.facult/config.json` (`rootDir`)
663
+ 3. `~/.ai/.facult/config.json` (`rootDir`)
656
664
  4. `~/.ai`
657
665
  5. `~/agents/.facult` (or a detected legacy store under `~/agents/`)
658
666
 
@@ -660,12 +668,12 @@ facult <command> --help
660
668
 
661
669
  - `FACULT_ROOT_DIR`: override canonical store location
662
670
  - `FACULT_VERSION`: version selector for `scripts/install.sh` (`latest` by default)
663
- - `FACULT_INSTALL_DIR`: install target dir for `scripts/install.sh` (`~/.facult/bin` by default)
671
+ - `FACULT_INSTALL_DIR`: install target dir for `scripts/install.sh` (`~/.ai/.facult/bin` by default)
664
672
  - `FACULT_INSTALL_PM`: force package manager detection for npm bootstrap launcher (`npm` or `bun`)
665
673
 
666
674
  ### State and report files
667
675
 
668
- Under `~/.facult/`:
676
+ Under `~/.ai/.facult/`:
669
677
  - `sources.json` (latest inventory scan state)
670
678
  - `consolidated.json` (consolidation state)
671
679
  - `managed.json` (managed tool state)
@@ -679,7 +687,7 @@ Under `~/.facult/`:
679
687
 
680
688
  ### Config reference
681
689
 
682
- `~/.facult/config.json` supports:
690
+ `~/.ai/.facult/config.json` supports:
683
691
  - `rootDir`
684
692
  - `scanFrom`
685
693
  - `scanFromIgnore`
@@ -710,7 +718,7 @@ Default source aliases:
710
718
  - `skills.sh`
711
719
  - `clawhub`
712
720
 
713
- Custom remote sources can be defined in `~/.facult/indices.json` (manifest URL, optional integrity, optional signature keys/signature verification settings).
721
+ Custom remote sources can be defined in `~/.ai/.facult/indices.json` (manifest URL, optional integrity, optional signature keys/signature verification settings).
714
722
 
715
723
  ## Local Install Modes
716
724
 
@@ -722,11 +730,11 @@ bun run install:bin
722
730
  bun run install:status
723
731
  ```
724
732
 
725
- Default install path is `~/.facult/bin/facult`. You can pass a custom target dir via `--dir=/path`.
733
+ Default install path is `~/.ai/.facult/bin/fclt`. You can pass a custom target dir via `--dir=/path`.
726
734
 
727
735
  ## Autosync
728
736
 
729
- `facult autosync` is the background propagation layer for managed installs.
737
+ `fclt autosync` is the background propagation layer for managed installs.
730
738
 
731
739
  Current v1 behavior:
732
740
  - macOS LaunchAgent-backed
@@ -738,28 +746,28 @@ Current v1 behavior:
738
746
  Recommended usage:
739
747
 
740
748
  ```bash
741
- facult autosync install
742
- facult autosync status
749
+ fclt autosync install
750
+ fclt autosync status
743
751
  ```
744
752
 
745
753
  Project-local usage:
746
754
 
747
755
  ```bash
748
756
  cd /path/to/repo
749
- facult autosync install codex
750
- facult autosync status codex
757
+ fclt autosync install codex
758
+ fclt autosync status codex
751
759
  ```
752
760
 
753
761
  Tool-scoped service:
754
762
 
755
763
  ```bash
756
- facult autosync install codex
764
+ fclt autosync install codex
757
765
  ```
758
766
 
759
767
  One-shot runner for verification/debugging:
760
768
 
761
769
  ```bash
762
- facult autosync run --service all --once
770
+ fclt autosync run --service all --once
763
771
  ```
764
772
 
765
773
  Remote git policy:
@@ -780,7 +788,7 @@ Release behavior:
780
788
  3. The same release workflow then builds platform binaries and uploads them to that GitHub release.
781
789
  4. npm publish runs only after binary asset upload succeeds (`publish-npm` depends on `publish-assets`).
782
790
  5. Published release assets include platform binaries, `facult-install.sh`, and `SHA256SUMS`.
783
- 6. The npm package launcher resolves your platform, downloads the matching release binary, caches it under `~/.facult/runtime/<version>/<platform-arch>/`, and runs it.
791
+ 6. The npm package launcher resolves your platform, downloads the matching release binary, caches it under `~/.ai/.facult/runtime/<version>/<platform-arch>/`, and runs it.
784
792
 
785
793
  Current prebuilt binary targets:
786
794
  - `darwin-x64`
@@ -791,7 +799,7 @@ Current prebuilt binary targets:
791
799
  Self-update behavior:
792
800
  1. npm/bun global install: updates via package manager (`npm install -g facult@...` or `bun add -g facult@...`).
793
801
  2. Direct binary install (release script/local binary path): downloads and replaces the binary in place.
794
- 3. Use `facult self-update` (or `facult update --self`).
802
+ 3. Use `fclt self-update` (or `fclt update --self`).
795
803
 
796
804
  Required secrets for publish:
797
805
  - `NPM_TOKEN`
@@ -829,13 +837,13 @@ bun run release:dry-run
829
837
 
830
838
  ## FAQ
831
839
 
832
- ### Does facult run its own MCP server today?
840
+ ### Does fclt run its own MCP server today?
833
841
 
834
- Not as a first-party `facult mcp serve` runtime.
842
+ Not as a first-party `fclt mcp serve` runtime.
835
843
 
836
844
  `facult` currently focuses on inventory, trust/audit, install/update, and managed sync of skills/MCP configs.
837
845
 
838
- ### Does facult now manage global AI config, not just skills and MCP?
846
+ ### Does fclt now manage global AI config, not just skills and MCP?
839
847
 
840
848
  Yes. The core model now includes:
841
849
  - canonical personal AI source in `~/.ai`
@@ -844,8 +852,8 @@ Yes. The core model now includes:
844
852
  - tool-native configs such as `~/.codex/config.toml`
845
853
  - tool-native rule files such as `~/.codex/rules/*.rules`
846
854
 
847
- ### Do I still need to run `facult sync` manually?
855
+ ### Do I still need to run `fclt sync` manually?
848
856
 
849
857
  If autosync is not installed, yes.
850
858
 
851
- If autosync is installed, local changes under `~/.ai` propagate automatically to managed tools. Manual `facult sync` is still useful for explicit repair, dry-runs, and non-daemon workflows.
859
+ If autosync is installed, local changes under `~/.ai` propagate automatically to managed tools. Manual `fclt sync` is still useful for explicit repair, dry-runs, and non-daemon workflows.