fleet-standard: .terraphim knowledge stack (roles, KG, thesauri, skills manifest, memory) - #957
Conversation
…rraphim
Extends the in-repo .terraphim layout (Rust Engineer + kg/<role>/) with
fleet-standard §8 roles without replacing them:
- Terraphim AI Developer (taidev) + Architect (taiarch)
- Domain KG concepts under kg-taidev/ and kg-taiarch/
- Committed thesauri + skills.toml (tsm names verified 2026-08-08)
- bootstrap.py materializes {REPO} placeholders and refreshes fleet thesauri
- memory/ repo-local agent notes
Config stays portable: new roles use {REPO} haystacks/KG paths; existing
Rust Engineer keeps relative paths. Default role unchanged (Rust Engineer).
Refs fleet-standard §8
e851679 to
552e8da
Compare
taidev/taiarch haystacks and KG paths are repo-relative; bootstrap only regenerates thesauri and normalizes absolutes back to relative — never writes machine paths into tracked config.json. Refs fleet-standard §8
Structural review P1: top-level id "TerraphimAI" is not a ConfigId variant (Server/Desktop/Embedded) and breaks strict Config::load_from_json_file. ProjectConfig ignores it; remove rather than invent a value. P2: synonym first-wins now warns; JSON files end with newline. Preserve legacy kg/rust-engineer path. Refs fleet-standard §8
…wlines R2 structural review: - P1: suffix heuristic rewrote foreign haystacks ending in /docs,/crates,etc. Now requires realpath containment under REPO; foreign paths left untouched. - P2: thesaurus json.dump now writes trailing newline (stays fixed on regen) - P2: clean Path portability README section (remove duplicate fragment) Refs fleet-standard §8
|
🤖 structural-pr-review (claude sonnet) · R4 final · independent of authoring model SummaryThis PR adds two new fleet-standard Terraphim roles ("Terraphim AI Developer" /
What was done well: the diff is tightly scoped (only This is round 3. The single R3 finding — Confidence Score: 5/5
Important Files Changed
Diagram%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[bootstrap.py run] --> B{For each role in config.json}
B --> C{fleet kg-<shortname>/ dir exists?}
C -->|yes| D[Force kg.path = .terraphim/kg-<shortname>]
C -->|no, legacy kg path| E[Normalize via to_repo_relative<br/>never collapses to root]
D --> F{For each haystack location}
E --> F
F --> G[to_repo_relative]
G --> H{Absolute path?}
H -->|resolves inside repo| I[Rewrite to repo-relative]
H -->|foreign / outside repo| J[Leave untouched]
F --> K{fleet kg dir exists?}
K -->|yes| L[compile_thesaurus:<br/>glob *.md sorted, parse synonyms::,<br/>warn on cross-file key collision]
L --> M[Write thesaurus-shortname.json<br/>json.dump indent=2 + trailing newline]
I --> N{Any config change?}
J --> N
N -->|yes| O[Write config.json<br/>json.dump indent=2 + trailing newline]
N -->|no| P[No-op: already portable]
style M fill:#d4edda,stroke:#28a745
style O fill:#d4edda,stroke:#28a745
FooterLast reviewed commit: 905f1d9 | Reviews (3) Findings: P0=0 P1=0 P2=0 |
GitHub commits merged: - 552e8da feat: add fleet taidev/taiarch knowledge stack alongside existing .terraphim - 14d4a97 fix: fleet roles use repo-relative paths (match migration P2 fix) - 222f068 fix: bootstrap preserves legacy kg/<role>/ paths (do not clobber Rust Engineer) - a688b00 fix: drop invalid Config id; warn synonym collisions; trailing newlines - 9969458 fix: bootstrap only rewrites in-repo absolute paths; JSON trailing newlines - 905f1d9 fix: trailing newline on config.json write-back (R3 P2) - 8206dbc Merge pull request #957 from terraphim/fleet/terraphim-knowledge-stack Conflict: .terraphim/skills.toml — merged both sides' skill lists
Fleet standard §8 rollout (private/cto-executive-system doc 2026-08-08-rust-fleet-standard.md).