facult 2.12.0 → 2.13.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.
@@ -42,7 +42,7 @@ Use project scope for capability that belongs to a repo, team workflow, architec
42
42
 
43
43
  Promote project capability to global only when repeated evidence shows reuse across projects. Do not globalize a project quirk just because it worked once.
44
44
 
45
- ## Writeback And Evolution
45
+ ## Writeback and Evolution
46
46
 
47
47
  Target the smallest affected unit.
48
48
 
@@ -98,7 +98,7 @@ Review surfaces:
98
98
 
99
99
  Evolution proposal metadata, markdown drafts, patch artifacts, writeback queues,
100
100
  and journals are runtime state. `fclt` stores JSON queues, proposal records,
101
- draft refs, patches, and journals in machine-local Facult state. It mirrors
101
+ draft refs, patches, and journals in machine-local `fclt` state. It mirrors
102
102
  human-readable review artifacts into global `~/.ai/writebacks/...` and
103
103
  `~/.ai/evolution/...`, including project-scoped artifacts under
104
104
  `projects/<slug-hash>/` with cwd/project metadata in frontmatter. Canonical
@@ -29,7 +29,7 @@ fclt ai writeback add --kind <kind> --summary "<summary>" --asset <asset-selecto
29
29
  ```
30
30
 
31
31
  The writeback queue is runtime state, not canonical source. `fclt` stores JSON
32
- queue state in machine-local Facult state so sandboxed agents can record durable
32
+ queue state in machine-local `fclt` state so sandboxed agents can record durable
33
33
  friction without mutating canonical assets unless an evolution proposal is later
34
34
  reviewed and applied.
35
35
 
package/docs/README.md CHANGED
@@ -1,19 +1,29 @@
1
1
  # fclt Documentation
2
2
 
3
- These docs explain the product model behind `fclt`. The root [README](../README.md) is the quick start and command reference. The files here explain why the pieces exist and how they fit together.
3
+ These docs explain how `fclt` stores, inspects, composes, renders, and improves AI capability.
4
4
 
5
- Start here:
5
+ Start with the root [README](../README.md) for installation and first workflows. Use these guides when you need the model, safety rules, or command details.
6
+
7
+ The concepts guide includes the [feedback-loop diagram](./assets/fclt-capability-loop.png) that explains why `fclt` exists: setup once, let agents preserve friction, then review the changes that should improve future work.
8
+
9
+ ## Guides
6
10
 
7
11
  - [Concepts](./concepts.md): canonical roots, generated state, rendered outputs, scopes, and asset types.
8
12
  - [Composable Capability](./composable-capability.md): refs, snippets, instruction templates, and evolvable units.
9
- - [Managed Mode](./managed-mode.md): when to let `fclt` write tool files, and how adoption works.
10
13
  - [Project `.ai`](./project-ai.md): how repo-local capability works without leaking project review state into the repo.
11
- - [Built-In Pack](./built-in-pack.md): the packaged operating-model layer for writeback and evolution.
12
- - [Writeback And Evolution](./writeback-evolution.md): how real-work friction becomes reviewable capability changes.
13
- - [Roadmap](./roadmap.md): current product gaps and non-goals.
14
+ - [Built-in pack](./built-in-pack.md): the packaged operating-model layer for writeback and evolution.
15
+ - [Writeback and evolution](./writeback-evolution.md): how real-work friction becomes reviewable capability changes.
16
+ - [Managed mode](./managed-mode.md): when to let `fclt` write tool files, and how adoption works.
17
+ - [Security and trust](./security-trust.md): source trust, audit, secrets, and commit hygiene.
18
+ - [Automations](./automations.md): recurring Codex loops for learning review, evolution review, and tool-call audit.
19
+ - [Command reference](./reference.md): command groups and common flags.
20
+ - [Roadmap](./roadmap.md): current product gaps and planned work.
14
21
 
15
- ## Documentation Policy
22
+ ## Reading Order
16
23
 
17
- Public docs should use generic examples. Do not include personal account names, private customer names, local machine paths, secret values, or project-specific operating notes. Use placeholders such as `/path/to/repo`, `example.com`, and `~/.ai`.
24
+ New users should read:
18
25
 
19
- Machine-local state and review artifacts can contain project metadata. `fclt` keeps those artifacts in machine-local Facult state and global `~/.ai/writebacks` / `~/.ai/evolution` review directories, not in repo-local project `.ai` directories.
26
+ - [Concepts](./concepts.md)
27
+ - [Project `.ai`](./project-ai.md) if working in a repo
28
+ - [Managed mode](./managed-mode.md) only before allowing `fclt` to write tool files
29
+ - [Writeback and evolution](./writeback-evolution.md) before setting up feedback loops
@@ -0,0 +1,68 @@
1
+ # Automations
2
+
3
+ `fclt` can scaffold Codex automations that run the feedback loop on a schedule.
4
+
5
+ Use automations for review and synthesis, not for bypassing review. They should preserve useful signal, group repeated patterns, and draft proposals only when the target is concrete.
6
+
7
+ ## Templates
8
+
9
+ Learning review:
10
+
11
+ ```bash
12
+ fclt templates init automation learning-review \
13
+ --scope project \
14
+ --project-root /path/to/repo \
15
+ --status PAUSED
16
+ ```
17
+
18
+ Evolution review:
19
+
20
+ ```bash
21
+ fclt templates init automation evolution-review \
22
+ --scope wide \
23
+ --cwds /path/to/repo-a,/path/to/repo-b \
24
+ --status PAUSED
25
+ ```
26
+
27
+ Tool-call audit:
28
+
29
+ ```bash
30
+ fclt templates init automation tool-call-audit \
31
+ --scope project \
32
+ --project-root /path/to/repo \
33
+ --status PAUSED
34
+ ```
35
+
36
+ ## Scopes
37
+
38
+ - `project`: one repo. Use this for repo-specific writeback, verification, and tool friction.
39
+ - `wide`: a small related set of repos. Use this for shared capability review.
40
+ - `global`: global capability and shared agent behavior.
41
+
42
+ Keep wide scopes intentionally small. A good automation should preserve source boundaries instead of mixing unrelated repos into one vague proposal.
43
+
44
+ ## Output
45
+
46
+ Automation files are written to:
47
+
48
+ ```text
49
+ ~/.codex/automations/<name>/automation.toml
50
+ ~/.codex/automations/<name>/memory.md
51
+ ```
52
+
53
+ When Codex is managed by `fclt`, canonical automation sources can live under:
54
+
55
+ ```text
56
+ ~/.ai/automations/<name>/
57
+ <repo>/.ai/automations/<name>/
58
+ ```
59
+
60
+ Project-scoped automation sources are default-deny for managed sync. Add their names to `[project_sync.codex].automations` before project managed sync can render them into the shared live Codex automation store.
61
+
62
+ ## Suggested Cadence
63
+
64
+ - daily or per-project `learning-review` for durable signal
65
+ - weekly `evolution-review` for proposal triage
66
+ - targeted `tool-call-audit` when tool failures, missing skills, or shallow-success patterns repeat
67
+
68
+ High-risk global changes should still move through proposal review before apply.
@@ -1,4 +1,4 @@
1
- # Built-In Pack
1
+ # Built-in Pack
2
2
 
3
3
  `fclt` ships an operating-model pack:
4
4
 
@@ -6,7 +6,7 @@
6
6
  assets/packs/facult-operating-model/
7
7
  ```
8
8
 
9
- It provides a default feedback loop for agents that use `fclt`.
9
+ It provides default guidance for agents that use `fclt`: define the work, verify it, record durable feedback, and turn repeated signal into reviewed changes.
10
10
 
11
11
  ## Included Assets
12
12
 
@@ -80,7 +80,7 @@ sync_defaults = false
80
80
 
81
81
  ## Design Rule
82
82
 
83
- The built-in pack should stay small. It should teach:
83
+ The built-in pack should stay small. It teaches:
84
84
 
85
85
  - work-unit discipline
86
86
  - composable refs, snippets, instructions, skills, agents, MCP, and automations
@@ -90,4 +90,10 @@ The built-in pack should stay small. It should teach:
90
90
  - project/global scope decisions
91
91
  - managed-mode ownership boundaries
92
92
 
93
- It should not become a pile of preferences. Put project-specific behavior in project `.ai`; promote to global only when repeated evidence proves reuse.
93
+ Keep project-specific behavior in project `.ai`. Promote it only when repeated evidence shows it is reusable outside that project.
94
+
95
+ ## Next
96
+
97
+ - Read [Composable Capability](./composable-capability.md) for refs, snippets, and instruction templates.
98
+ - Read [Writeback and evolution](./writeback-evolution.md) for the feedback loop.
99
+ - Read [Managed mode](./managed-mode.md) before rendering the pack into a tool home.
@@ -2,6 +2,8 @@
2
2
 
3
3
  `fclt` treats AI behavior as small capability units that can be composed into larger agent instructions and evolved independently.
4
4
 
5
+ This prevents one giant agent file from becoming the only place to put every preference, workflow, and exception. A language preference can live in one instruction. A repeated rendered block can live in one snippet. A workflow can live in one skill. Each unit can receive targeted writeback and targeted evolution.
6
+
5
7
  This is the core model:
6
8
 
7
9
  - write domain guidance once
@@ -168,3 +170,9 @@ fclt ai evolve list
168
170
  ```
169
171
 
170
172
  Open `~/.ai/writebacks/` and `~/.ai/evolution/` in a markdown editor to inspect review artifacts with frontmatter status, scope, targets, project metadata, evidence, and proposal state.
173
+
174
+ ## Next
175
+
176
+ - Read [Writeback and evolution](./writeback-evolution.md) for proposal flow.
177
+ - Read [Built-in Pack](./built-in-pack.md) for packaged defaults.
178
+ - Use [Command reference](./reference.md) for template and graph commands.
package/docs/concepts.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  The important distinction is ownership. A file can be source, generated state, machine runtime state, a rendered output, or a review artifact. Treating those as separate layers prevents sync surprises.
6
6
 
7
+ ![fclt capability loop: setup, capability, agents, work units, writebacks, evolution, approval, and better future agents](./assets/fclt-capability-loop.png)
8
+
9
+ The intended operating model is agent-led after setup. Users install and approve broad changes; agents inspect capability, run work units, record durable friction, and use repeated signal to propose small improvements.
10
+
7
11
  ## Roots And Scopes
8
12
 
9
13
  Global root:
@@ -66,7 +70,7 @@ Examples:
66
70
  ~/.ai/.facult/ai/graph.json
67
71
  ```
68
72
 
69
- Project generated state lives in machine-local Facult state, not in the repo.
73
+ Project generated state lives in machine-local `fclt` state, not in the repo.
70
74
 
71
75
  Machine runtime state records local behavior and history.
72
76
 
@@ -123,3 +127,9 @@ The durable loop is:
123
127
  4. Draft the smallest valid proposal.
124
128
  5. Review and apply accepted changes to canonical source.
125
129
  6. Re-index and sync only the surfaces that should receive the change.
130
+
131
+ ## Next
132
+
133
+ - Read [Project `.ai`](./project-ai.md) before adding repo-local capability.
134
+ - Read [Managed mode](./managed-mode.md) before allowing `fclt` to write tool files.
135
+ - Read [Composable Capability](./composable-capability.md) to split guidance into instructions, snippets, skills, agents, MCP, and automations.
@@ -1,4 +1,4 @@
1
- # Managed Mode
1
+ # Managed mode
2
2
 
3
3
  Managed mode is optional. Use it when you want `fclt` to write rendered files into a tool home. Do not use it just to inspect or normalize existing tool-native state.
4
4
 
@@ -37,9 +37,9 @@ When live content differs from canonical content:
37
37
  - rendered docs/config with local edits are skipped unless an explicit conflict option allows overwrite
38
38
  - built-in rendered defaults require `--builtin-conflicts overwrite` before replacing local edits
39
39
 
40
- This is deliberate. Managed mode should be boring and reversible.
40
+ This is deliberate. Managed mode should be predictable and reversible.
41
41
 
42
- ## Project Managed Mode
42
+ ## Project managed mode
43
43
 
44
44
  Project sync is default-deny. A project `.ai` root can exist without rendering anything into repo-local tool outputs.
45
45
 
@@ -60,7 +60,7 @@ tool_config = true
60
60
 
61
61
  If a repo-local `.ai` contains only generated state and no canonical assets, `fclt status --project` reports a generated-only warning and `fclt sync --project` skips. Initialize or restore canonical source before syncing managed project output.
62
62
 
63
- ## When Not To Use Managed Mode
63
+ ## When not to use managed mode
64
64
 
65
65
  Do not use managed mode when:
66
66
 
@@ -71,3 +71,9 @@ Do not use managed mode when:
71
71
  - you are debugging and need read-only evidence first
72
72
 
73
73
  Use `fclt inventory`, `scan`, `list`, `show`, `graph`, `status`, and `audit` instead.
74
+
75
+ ## Next
76
+
77
+ - Read [Project `.ai`](./project-ai.md) for repo-local sync policy.
78
+ - Read [Security and trust](./security-trust.md) for MCP secrets and audit.
79
+ - Use [Command reference](./reference.md) for common managed-mode commands.
@@ -1,6 +1,6 @@
1
1
  # Project `.ai`
2
2
 
3
- A project `.ai` root stores repo-owned capability. It is not a dumping ground for generated state, review queues, or private local context.
3
+ A project `.ai` root stores repo-owned capability. It is for source that should travel with the codebase, not for generated state, review queues, or private local context.
4
4
 
5
5
  Create one with:
6
6
 
@@ -44,11 +44,11 @@ Do not put these in project `.ai`:
44
44
  - secrets
45
45
  - private review artifacts
46
46
 
47
- Project-scoped writebacks and evolution proposals are stored in machine-local Facult state and mirrored for review under global `~/.ai/writebacks/projects/<slug-hash>/` and `~/.ai/evolution/projects/<slug-hash>/`.
47
+ Project-scoped writebacks and evolution proposals are stored in machine-local `fclt` state and mirrored for review under global `~/.ai/writebacks/projects/<slug-hash>/` and `~/.ai/evolution/projects/<slug-hash>/`.
48
48
 
49
- ## Generated-Only Roots
49
+ ## Migration From Generated-Only Roots
50
50
 
51
- Older versions could leave `<repo>/.ai/.facult/ai/index.json` and `graph.json` behind without any canonical source. That makes the repo look like it has project AI state even though there is nothing durable to render.
51
+ Some repos may contain `<repo>/.ai/.facult/ai/index.json` and `graph.json` without any canonical source. That makes the repo look like it has project AI state even though there is nothing durable to render.
52
52
 
53
53
  Current behavior:
54
54
 
@@ -79,6 +79,12 @@ tool_config = true
79
79
 
80
80
  This includes inherited global assets. If a global skill should appear in project-managed Codex output, list it explicitly.
81
81
 
82
+ ## Next
83
+
84
+ - Read [Concepts](./concepts.md) for source, generated state, machine-local state, and rendered outputs.
85
+ - Read [Managed mode](./managed-mode.md) before syncing project assets into tool outputs.
86
+ - Read [Security and trust](./security-trust.md) before committing MCP config.
87
+
82
88
  ## Verification
83
89
 
84
90
  Use these commands after changing project `.ai`:
@@ -0,0 +1,112 @@
1
+ # Command reference
2
+
3
+ This page groups the main `fclt` commands by job. Use `fclt --help` and `fclt <command> --help` for exact flags.
4
+
5
+ ## Discovery
6
+
7
+ ```bash
8
+ fclt status [--json]
9
+ fclt doctor [--json] [--repair]
10
+ fclt paths [--json]
11
+ fclt scan [--from <path>] [--json] [--show-duplicates]
12
+ fclt inventory [--json] [--tool <name>] [--show-secrets]
13
+ fclt list [skills|mcp|agents|snippets|instructions|automations]
14
+ fclt show <selector>
15
+ fclt find <query>
16
+ ```
17
+
18
+ Use these first. They let you inspect tool state without claiming ownership of any files.
19
+ `doctor --json` is read-only and reports setup health, issues, and recommended
20
+ actions. `paths --json` reports canonical, generated, runtime, and review paths
21
+ for agents and integrations.
22
+
23
+ ## Graph
24
+
25
+ ```bash
26
+ fclt graph show <selector>
27
+ fclt graph deps <selector>
28
+ fclt graph dependents <selector>
29
+ ```
30
+
31
+ The graph explains how instructions, snippets, config refs, and rendered targets relate.
32
+
33
+ ## Canonical Store
34
+
35
+ ```bash
36
+ fclt templates list
37
+ fclt templates init operating-model [--global|--project|--root PATH]
38
+ fclt templates init project-ai
39
+ fclt templates init instruction <name>
40
+ fclt templates init snippet <marker>
41
+ fclt templates init skill <name>
42
+ fclt templates init agent <name>
43
+ fclt templates init mcp <name>
44
+ fclt templates init automation <template-id> --scope global|project|wide
45
+ fclt consolidate --auto keep-current --from <path>
46
+ fclt index [--force]
47
+ ```
48
+
49
+ Use these to create or normalize canonical capability in `~/.ai` or `<repo>/.ai`.
50
+
51
+ ## Managed mode
52
+
53
+ ```bash
54
+ fclt manage <tool> [--dry-run] [--adopt-existing]
55
+ fclt sync [tool] [--dry-run] [--adopt-live]
56
+ fclt enable <selector> --for codex,claude
57
+ fclt disable <selector> --for codex,claude
58
+ fclt managed
59
+ fclt unmanage <tool>
60
+ ```
61
+
62
+ Managed mode writes rendered output into tool homes. Read [Managed mode](./managed-mode.md) before using it on an existing setup.
63
+
64
+ ## Writeback and evolution
65
+
66
+ ```bash
67
+ fclt ai writeback add --kind <kind> --summary <text> --asset <selector>
68
+ fclt ai writeback list
69
+ fclt ai writeback show WB-00001
70
+ fclt ai writeback group --by asset
71
+ fclt ai writeback summarize --by kind
72
+
73
+ fclt ai evolve propose
74
+ fclt ai evolve list
75
+ fclt ai evolve show EV-00001
76
+ fclt ai evolve draft EV-00001
77
+ fclt ai evolve review EV-00001
78
+ fclt ai evolve accept EV-00001
79
+ fclt ai evolve reject EV-00001 --reason <text>
80
+ fclt ai evolve apply EV-00001
81
+ fclt ai evolve promote EV-00003 --to global --project
82
+ ```
83
+
84
+ Use these to turn repeated work friction into reviewed capability changes.
85
+
86
+ ## Sources, Audit, And Updates
87
+
88
+ ```bash
89
+ fclt search <query>
90
+ fclt install <source:item> [--as <name>] [--strict-source-trust]
91
+ fclt update [--apply]
92
+ fclt verify-source <name> [--json]
93
+ fclt sources list
94
+ fclt sources trust <source> [--note <text>]
95
+ fclt sources review <source> [--note <text>]
96
+ fclt sources block <source> [--note <text>]
97
+ fclt sources clear <source>
98
+ fclt audit [--non-interactive]
99
+ fclt self-update
100
+ ```
101
+
102
+ Use `--strict-source-trust` when installing or updating remote capability from catalogs.
103
+
104
+ ## Root Selection
105
+
106
+ Most commands accept the same root controls:
107
+
108
+ - `--global`: use `~/.ai`
109
+ - `--project`: use the nearest repo-local `.ai`
110
+ - `--root /path/to/.ai`: use an explicit canonical root
111
+ - `--scope merged|global|project`: choose a discovery view
112
+ - `--source builtin|global|project`: filter provenance in list/find/show/graph flows
package/docs/roadmap.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roadmap
2
2
 
3
- This replaces the older operating-model target-state notes. That file mixed current documentation, past investigation output, and future design ideas. The current docs now describe shipped behavior; this file tracks remaining product direction.
3
+ This roadmap tracks remaining product direction for `fclt`.
4
4
 
5
5
  ## Already Shipped
6
6
 
@@ -11,6 +11,7 @@ This replaces the older operating-model target-state notes. That file mixed curr
11
11
  - Project-scoped writeback/evolution artifacts mirrored under global `~/.ai`.
12
12
  - Built-in operating-model pack.
13
13
  - Independent built-in operating-model pack install with `templates init operating-model`.
14
+ - Read-only setup discovery with `doctor --json` and `paths --json`.
14
15
  - Cleaner built-in canonical refs.
15
16
  - JSON-first `inventory`.
16
17
  - `sync --adopt-live` for explicit promotion of live tool edits.
@@ -18,32 +19,42 @@ This replaces the older operating-model target-state notes. That file mixed curr
18
19
 
19
20
  ## Current Priorities
20
21
 
21
- 1. Make status more explanatory.
22
+ 1. Add agent-first setup APIs.
23
+ - Add `setup plan --json` and safe apply primitives for confirmation-gated setup.
24
+ - Add command/risk metadata so agents can distinguish read-only, dry-run, generated-state writes, mutating actions, and high-risk global changes.
25
+
26
+ 2. Make status more explanatory.
22
27
  - Show policy summaries.
23
28
  - Surface top recommended next action.
24
29
  - Connect sync ledger history to rendered targets.
25
30
 
26
- 2. Add a structured sync plan.
31
+ 3. Add a structured sync plan.
27
32
  - Group writes, updates, removals, skips, conflicts, and repairs.
28
33
  - Expose the same plan as JSON.
29
34
  - Explain source refs and policy reasons.
30
35
 
31
- 3. Improve project onboarding.
36
+ 4. Improve project onboarding.
32
37
  - Add a primary `fclt init project` flow.
33
38
  - Explain default-deny project sync during setup.
34
39
  - Offer safe adoption, detach, and restore choices.
35
40
 
36
- 4. Make policy inspectable.
41
+ 5. Make policy inspectable.
37
42
  - Add `policy show`.
38
43
  - Add `policy explain`.
39
44
  - Hide TOML details behind user-facing commands where possible.
40
45
 
41
- 5. Make templates, plugins, automations, and rendered targets first-class inventory objects.
46
+ 6. Make templates, plugins, automations, and rendered targets first-class inventory objects.
42
47
  - List and show them consistently.
43
48
  - Add graph visibility.
44
49
  - Include them in status and sync plans.
45
50
 
46
- 6. Tighten selector consistency.
51
+ 7. Add a first-party Codex plugin and MCP surface.
52
+ - Expose safe read/write operations over existing `fclt` behavior.
53
+ - Keep the CLI and canonical `.ai` roots as the source of truth.
54
+ - Gate high-risk global changes behind explicit review.
55
+ - Bundle agent-facing skills for work units, writeback, evolution, capability search, and automation setup.
56
+
57
+ 8. Tighten selector consistency.
47
58
  - Use one selector grammar across `list`, `show`, `graph`, `enable`, `disable`, `trust`, `audit`, writeback, and evolution.
48
59
  - Return useful ambiguity errors with candidates.
49
60
 
@@ -0,0 +1,89 @@
1
+ # Security and Trust
2
+
3
+ `fclt` can inspect and install capability that affects agent behavior. Treat that capability like code.
4
+
5
+ ## Source Trust
6
+
7
+ Remote catalogs can be useful, but they should not become trusted by accident.
8
+
9
+ ```bash
10
+ fclt sources list
11
+ fclt verify-source skills.sh --json
12
+ fclt sources trust skills.sh --note "reviewed"
13
+ fclt install skills.sh:code-review --as code-review-skills-sh --strict-source-trust
14
+ ```
15
+
16
+ Source trust has three practical states:
17
+
18
+ - `trusted`: reviewed source, eligible for strict installs and updates
19
+ - `review`: visible but not trusted for strict installs
20
+ - `blocked`: not eligible for install/update
21
+
22
+ ## Item Trust
23
+
24
+ Individual skills and MCP servers can also be trusted or untrusted:
25
+
26
+ ```bash
27
+ fclt trust <skill-name>
28
+ fclt trust mcp:<name>
29
+ fclt untrust <skill-name>
30
+ fclt untrust mcp:<name>
31
+ fclt trust skills --all
32
+ fclt untrust mcp --all
33
+ ```
34
+
35
+ Use item trust when a source contains mixed-quality skills or MCP servers, or when local review happens item by item.
36
+
37
+ ## Audit
38
+
39
+ Run an interactive audit:
40
+
41
+ ```bash
42
+ fclt audit
43
+ ```
44
+
45
+ Run static checks in automation:
46
+
47
+ ```bash
48
+ fclt audit --non-interactive --severity high
49
+ fclt audit --non-interactive mcp:github --severity medium --json
50
+ ```
51
+
52
+ Suppress or fix reviewed findings:
53
+
54
+ ```bash
55
+ fclt audit safe mcp:github --rule static:mcp-env-inline-secret --note "reviewed"
56
+ fclt audit fix mcp:github
57
+ ```
58
+
59
+ ## Secrets
60
+
61
+ Tracked canonical MCP config should not inline secrets. Put machine-specific values in ignored local overlays:
62
+
63
+ ```text
64
+ ~/.ai/mcp/servers.local.json
65
+ <repo>/.ai/mcp/servers.local.json
66
+ ```
67
+
68
+ `inventory --json` redacts MCP secrets by default. Use `--show-secrets` only for local debugging.
69
+
70
+ ## Commit Hygiene
71
+
72
+ Commit canonical source that should travel:
73
+
74
+ - instructions
75
+ - snippets
76
+ - skills
77
+ - agents
78
+ - MCP definitions without secrets
79
+ - project sync policy
80
+
81
+ Do not commit:
82
+
83
+ - generated index or graph state
84
+ - machine-local writeback queues
85
+ - proposal metadata and draft patches
86
+ - rendered tool outputs
87
+ - local secret overlays
88
+
89
+ Project-scoped writebacks and evolution proposals are mirrored for review under global `~/.ai/writebacks/projects/<slug-hash>/` and `~/.ai/evolution/projects/<slug-hash>/`, not under repo-local `<repo>/.ai`.
@@ -1,7 +1,9 @@
1
- # Writeback And Evolution
1
+ # Writeback and Evolution
2
2
 
3
3
  Writeback preserves useful signal from real work. Evolution turns repeated signal into reviewable changes.
4
4
 
5
+ Use this when normal work exposes the same problem more than once: shallow tests, missing context, stale guidance, a slow tool path, or a missing skill. Ignore it for one-off preferences and vague complaints.
6
+
5
7
  Use this loop when a task exposes durable friction:
6
8
 
7
9
  1. record one targeted writeback
@@ -77,7 +79,7 @@ fclt ai evolve promote EV-00003 --to global --project
77
79
 
78
80
  ## Review Artifacts
79
81
 
80
- Runtime JSON queues, proposal metadata, draft patches, and journals stay in machine-local Facult state.
82
+ Runtime JSON queues, proposal metadata, draft patches, and journals stay in machine-local `fclt` state.
81
83
 
82
84
  Human-readable Markdown mirrors live under global `~/.ai`:
83
85
 
@@ -95,3 +97,9 @@ Project-scoped artifacts include project metadata in frontmatter. They do not ge
95
97
  Global instructions, skills, plugins, and other high-risk shared surfaces require explicit review before apply. Project-scoped additive markdown changes can be lower risk, but still need evidence and a clear target.
96
98
 
97
99
  Executable product or tooling work belongs in the task system. Use evolution for the reusable instruction, skill, prompt, or operating-model change that should survive that work.
100
+
101
+ ## Next
102
+
103
+ - Read [Composable Capability](./composable-capability.md) to choose the smallest target.
104
+ - Read [Automations](./automations.md) to schedule recurring review loops.
105
+ - Read [Security and trust](./security-trust.md) before applying global changes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "facult",
3
- "version": "2.12.0",
3
+ "version": "2.13.0",
4
4
  "description": "Manage canonical AI capabilities, sync surfaces, and evolution state.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,6 +32,7 @@
32
32
  "bin/fclt.cjs",
33
33
  "bin/facult.cjs",
34
34
  "docs/**/*.md",
35
+ "docs/**/*.png",
35
36
  "src/**/*.ts",
36
37
  "!src/**/*.test.ts",
37
38
  "README.md",