Skip to content

Commit 46f0e0a

Browse files
committed
Elevate companion tools visibility, remove GitNexus block from CLAUDE.md
Companion tools (Gemini Search, GitNexus) were buried at the bottom of multi-tool-setup.md where users would never find them. Now surfaced in three places: getting-started Step 5, multi-tool-setup TL;DR, and the GETTING_STARTED.md generated by ctx init. Removed the 121-line GitNexus block from CLAUDE.md (61% of the file) — it was low-value per-turn budget consumption. The same instructions already live in .claude/skills/gitnexus/ where they activate on demand. Deleted AGENTS.md (Codex convention, duplicate content). Also: archive 25 completed PD tasks, gitignore .gitnexus and generated skills, blog frontmatter finalization, docs/index.md wording fix, regenerate site. Signed-off-by: Jose Alekhinne <jose@ctx.ist>
1 parent a0a6427 commit 46f0e0a

121 files changed

Lines changed: 836 additions & 5081 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.context/DECISIONS.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
<!-- INDEX:START -->
44
| Date | Decision |
55
|------|--------|
6+
| 2026-03-25 | Companion tools documented as optional MCP enhancements with runtime check |
7+
| 2026-03-25 | Prompt templates removed — skills are the single agent instruction mechanism |
68
| 2026-03-24 | Write-once baseline with explicit end-consolidation for consolidation lifecycle |
79
| 2026-03-23 | Pre/pre HTML tags promoted to shared constants in config/marker |
810
| 2026-03-23 | Pure-data param structs in entity — replace function pointers with text keys |
@@ -109,6 +111,34 @@ For significant decisions:
109111
110112
-->
111113

114+
## [2026-03-25-173337] Companion tools documented as optional MCP enhancements with runtime check
115+
116+
**Status**: Accepted
117+
118+
**Context**: Gemini Search and GitNexus improve skills but no docs mentioned them and no code checked their availability
119+
120+
**Decision**: Companion tools documented as optional MCP enhancements with runtime check
121+
122+
**Rationale**: Users should know what tools enhance their workflow without being forced to install them. Suppressible via .ctxrc for users who don't want them.
123+
124+
**Consequence**: /ctx-remember smoke-tests MCPs at session start. companion_check: false suppresses.
125+
126+
---
127+
128+
## [2026-03-25-173336] Prompt templates removed — skills are the single agent instruction mechanism
129+
130+
**Status**: Accepted
131+
132+
**Context**: Prompt templates (.context/prompts/) overlapped with skills but had no discoverability — even the project creator didn't know they existed
133+
134+
**Decision**: Prompt templates removed — skills are the single agent instruction mechanism
135+
136+
**Rationale**: Adding metadata to prompts to fix discoverability would recreate the skill system. One concept is better than two.
137+
138+
**Consequence**: code-review, explain, refactor promoted to proper skills. ctx prompt CLI removed. loop.md retained as ctx loop config file at .context/loop.md.
139+
140+
---
141+
112142
## [2026-03-24-001001] Write-once baseline with explicit end-consolidation for consolidation lifecycle
113143

114144
**Status**: Accepted

.context/LEARNINGS.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ DO NOT UPDATE FOR:
1717
<!-- INDEX:START -->
1818
| Date | Learning |
1919
|------|--------|
20+
| 2026-03-25 | Dead files accumulate when nothing consumes them |
21+
| 2026-03-25 | Template improvements don't propagate to existing projects |
2022
| 2026-03-24 | lint-drift false positives from conflating constant namespaces |
2123
| 2026-03-24 | git describe --tags follows ancestry, not global tag list |
2224
| 2026-03-23 | Typography detection script needs exclusion lists for intentional uses |
@@ -109,6 +111,26 @@ DO NOT UPDATE FOR:
109111

110112
---
111113

114+
## [2026-03-25-173339] Dead files accumulate when nothing consumes them
115+
116+
**Context**: IMPLEMENTATION_PLAN.md and PROMPT.md were created by ctx init but no agent, hook, or skill ever read them
117+
118+
**Lesson**: Before adding a file to init scaffolding, verify there is at least one consumer. Periodically audit what init creates vs what the system reads.
119+
120+
**Application**: The prompt deprecation spec documents the reasoning as a papertrail for future removals.
121+
122+
---
123+
124+
## [2026-03-25-173338] Template improvements don't propagate to existing projects
125+
126+
**Context**: 5 of 8 context files in the ctx project itself had stale/missing comment headers — templates evolved but non-destructive init never re-synced them
127+
128+
**Lesson**: Any template change is invisible to existing users until they run ctx init --force
129+
130+
**Application**: Added drift detection (checkTemplateHeaders) to ctx drift. Consider surfacing this during ctx status too.
131+
132+
---
133+
112134
## [2026-03-24-001001] lint-drift false positives from conflating constant namespaces
113135

114136
**Context**: lint-drift.sh checked all string constants in embed/cmd/*.go against commands.yaml, but Use* constants are cobra syntax strings, not YAML lookup keys

.context/TASKS.md

Lines changed: 42 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -35,44 +35,19 @@ relocate loop.md, delete `ctx prompt` CLI and `/ctx-prompt` skill.
3535

3636
**PD.1 — Create new skills:**
3737

38-
- [x] PD.1.1: Create `/ctx-code-review` skill in `internal/assets/claude/skills/ctx-code-review/SKILL.md` — promote code-review.md with proper frontmatter, trigger phrases, allowed-tools #priority:high #added:2026-03-25-203340 #done:2026-03-25
39-
- [x] PD.1.2: Create `/ctx-explain` skill in `internal/assets/claude/skills/ctx-explain/SKILL.md` — promote explain.md with proper frontmatter, trigger phrases, allowed-tools #priority:high #added:2026-03-25-203340 #done:2026-03-25
40-
- [x] PD.1.3: Create `/ctx-refactor` skill in `internal/assets/claude/skills/ctx-refactor/SKILL.md` — promote refactor.md with proper frontmatter, trigger phrases, allowed-tools #priority:high #added:2026-03-25-203340 #done:2026-03-25
4138

4239
**PD.2 — Relocate loop.md:**
4340

44-
- [x] PD.2.1: Move loop.md deployment from `.context/prompts/loop.md` to `.context/loop.md` — update `ctx init` to write loop.md to context root #priority:high #added:2026-03-25-203340 #done:2026-03-25
45-
- [x] PD.2.2: Update `internal/config/loop/prompt.go` default to `.context/loop.md` #priority:high #added:2026-03-25-203340 #done:2026-03-25
46-
- [x] PD.2.3: Update `ctx loop` tests for new default path #priority:high #added:2026-03-25-203340 #done:2026-03-25
4741

4842
**PD.3 — Remove prompt system:**
4943

50-
- [x] PD.3.1: Delete `/ctx-prompt` skill (`internal/assets/claude/skills/ctx-prompt/SKILL.md`) #priority:high #added:2026-03-25-203340 #done:2026-03-25
51-
- [x] PD.3.2: Delete `internal/assets/prompt-templates/` directory (all 4 files) #priority:high #added:2026-03-25-203340 #done:2026-03-25
52-
- [x] PD.3.3: Delete `internal/assets/read/prompt/` package #priority:high #added:2026-03-25-203340 #done:2026-03-25
53-
- [x] PD.3.4: Delete `internal/cli/prompt/` entire command tree #priority:high #added:2026-03-25-203340 #done:2026-03-25
54-
- [x] PD.3.5: Delete `internal/cli/initialize/core/prompt/` package (prompt_tpl.go, doc.go) #priority:high #added:2026-03-25-203340 #done:2026-03-25
55-
- [x] PD.3.6: Delete `internal/write/prompt/` package #priority:high #added:2026-03-25-203340 #done:2026-03-25
56-
- [x] PD.3.7: Remove `prompt` command registration from `internal/bootstrap/bootstrap.go` #priority:high #added:2026-03-25-203340 #done:2026-03-25
57-
- [x] PD.3.8: Remove `prompt-templates/*.md` from embed.go glob #priority:high #added:2026-03-25-203340 #done:2026-03-25
58-
- [x] PD.3.9: Remove `Prompts` constant from `internal/config/dir/dir.go` #priority:high #added:2026-03-25-203340 #done:2026-03-25
59-
- [x] PD.3.10: Remove `DirPromptTemplates` from `internal/config/asset/asset.go` #priority:high #added:2026-03-25-203340 #done:2026-03-25
60-
- [x] PD.3.11: Remove prompt-specific error keys/functions from `internal/config/embed/text/err_prompt.go` and `internal/err/prompt/` (keep if used elsewhere) #priority:high #added:2026-03-25-203340 #done:2026-03-25
61-
- [x] PD.3.12: Remove prompt entries from commands.yaml, flags.yaml, write.yaml, ui.yaml, err.yaml #priority:high #added:2026-03-25-203340 #done:2026-03-25
62-
- [x] PD.3.13: Remove prompt template tests from embed_test.go #priority:high #added:2026-03-25-203340 #done:2026-03-25
6344

6445
**PD.4 — Update docs and context:**
6546

66-
- [x] PD.4.1: Delete `docs/recipes/prompt-templates.md` #priority:medium #added:2026-03-25-203340 #done:2026-03-25
67-
- [x] PD.4.2: Update `docs/cli/tools.md` — remove `ctx prompt` section, update `ctx loop` default #priority:medium #added:2026-03-25-203340 #done:2026-03-25
68-
- [x] PD.4.3: Update `docs/cli/index.md` — remove `ctx prompt` entry #priority:medium #added:2026-03-25-203340 #done:2026-03-25
69-
- [x] PD.4.4: Update `docs/recipes/index.md` — remove prompt-templates recipe reference #priority:medium #added:2026-03-25-203340 #done:2026-03-25
7047
- [ ] PD.4.5: Update AGENT_PLAYBOOK.md — add generic "check available skills" instruction #priority:medium #added:2026-03-25-203340
71-
- [x] PD.4.6: Search and update any remaining doc references to `.context/prompts/` or `ctx prompt` #priority:medium #added:2026-03-25-203340 #done:2026-03-25
7248

7349
**PD.5 — Validate:**
7450

75-
- [x] PD.5.1: Run `make lint && make test` — all tests pass, no dangling imports #priority:high #added:2026-03-25-203340 #done:2026-03-25
7651
- [ ] PD.5.2: Run `ctx init` on a clean directory — verify no `.context/prompts/` created, `.context/loop.md` exists, new skills deployed #priority:high #added:2026-03-25-203340
7752

7853
### Phase -3: DevEx
@@ -84,18 +59,36 @@ projects.
8459

8560
- [ ] Add cobra Example fields to CLI commands via examples.yaml #added:2026-03-20-163413
8661

87-
- [ ] Evaluate Gemini Search MCP server as peer MCP for grounded web queries — try gemini-grounding, document in multi-tool-setup recipe if useful. See ideas/gemini-search-mcp.md #added:2026-03-20-141022
62+
- [ ] Evaluate Gemini Search MCP server as peer MCP for grounded web queries —
63+
try gemini-grounding, document in multi-tool-setup recipe if useful.
64+
See ideas/gemini-search-mcp.md #added:2026-03-20-141022
8865

89-
- [ ] Create ctx-docstrings skill: audit and fix docstrings against CONVENTIONS.md Documentation section. Skill loads CONVENTIONS.md, scans functions in scope for missing/incomplete docstring sections (Parameters, Returns), reports violations, and optionally fixes them. Language-agnostic design with Go as first implementation. Deterministic enforcement via linter is tracked separately in ideas/spec-convention-enforcement.md #added:2026-03-16-114445
66+
- [ ] Create ctx-docstrings skill: audit and fix docstrings against
67+
CONVENTIONS.md Documentation section. Skill loads CONVENTIONS.md, scans
68+
functions in scope for missing/incomplete docstring sections
69+
(Parameters, Returns), reports violations, and optionally fixes them.
70+
Language-agnostic design with Go as first implementation. Deterministic
71+
enforcement via linter is tracked separately in
72+
ideas/spec-convention-enforcement.md #added:2026-03-16-114445
9073

9174
### Phase -2: Task completion nudge:
9275

9376
- [ ] Design UserPromptSubmit hook that runs `make audit` at session start and
94-
surfaces failures as a consolidation-debt warning before the agent acts on stale assumptions. Project-level hook (not bundled in ctx), configurable via .ctxrc or settings.json. Related: consolidation nudge hook spec. #added:2026-03-23-223500
95-
96-
- [ ] Bug: check-version hook missing throttle touch on plugin version read error (run.go:70). When claude.PluginVersion() fails, the hook returns without touching the daily throttle marker, causing repeated checks on days when plugin.json is missing or corrupted. Fix: add internalIo.TouchFile(markerFile) before the early return. See docs/recipes/hook-sequence-diagrams.md check-version diagram which documents the expected behavior. #added:2026-03-23-162802
97-
98-
- [ ] Design UserPromptSubmit hook that runs go build and surfaces compilation errors before the agent acts on stale assumptions #added:2026-03-23-120136
77+
surfaces failures as a consolidation-debt warning before the agent acts on
78+
stale assumptions. Project-level hook (not bundled in ctx), configurable
79+
via .ctxrc or settings.json.
80+
Related: consolidation nudge hook spec. #added:2026-03-23-223500
81+
82+
- [ ] Bug: check-version hook missing throttle touch on plugin version read error
83+
(run.go:70). When claude.PluginVersion() fails, the hook returns without
84+
touching the daily throttle marker, causing repeated checks on days when
85+
plugin.json is missing or corrupted. Fix: add
86+
internalIo.TouchFile(markerFile) before the early return.
87+
See docs/recipes/hook-sequence-diagrams.md check-version diagram
88+
which documents the expected behavior. #added:2026-03-23-162802
89+
90+
- [ ] Design UserPromptSubmit hook that runs go build and surfaces compilation
91+
errors before the agent acts on stale assumptions #added:2026-03-23-120136
9992

10093
- [ ]: Architecture mapping skill refactoring:
10194
- [ ] Update ctx-architecture skill based on the following findings; remove
@@ -435,23 +428,23 @@ just file reorganization.
435428

436429
Taxonomy (from prefix analysis):
437430

438-
| File | Prefixes / Domain | ~Count |
439-
|------------------|-------------------------------------------------------|--------|
440-
| `memory.go` | Memory*, Discover* | 17 |
441-
| `parser.go` | Parser* | 7 |
442-
| `crypto.go` | Crypto*, Encrypt*, Decrypt*, GenerateKey, SaveKey, LoadKey, NoKeyAt | 14 |
443-
| `task.go` | Task*, NoTaskSpecified, NoTaskMatch, NoCompletedTasks | 8 |
444-
| `journal.go` | LoadJournalState*, SaveJournalState*, ReadJournalDir, NoJournalDir, NoJournalEntries, ScanJournal, UnknownStage, StageNotSet | 10 |
445-
| `session.go` | Session*, FindSessions, NoSessionsFound, All*, Ambiguous* | 8 |
446-
| `pad.go` | Edit*, Blob*, ReadScratchpad, OutFlagRequiresBlob, NoConflict*, Resolve* | 10 |
447-
| `recall.go` | Reindex*, Stats*, EventLog* | 6 |
448-
| `fs.go` | Read*, Write*, Open*, Stat*, File*, Mkdir*, CreateDir, DirNotFound, NotDirectory, Boundary* | 30 |
449-
| `backup.go` | Backup*, CreateBackup*, CreateArchive* | 6 |
450-
| `prompt.go` | Prompt*, NoPromptTemplate, ListTemplates, ReadTemplate, NoTemplate | 7 |
451-
| `hook.go` | Embedded*, Override*, UnknownHook, UnknownVariant, MarkerNotFound | 6 |
452-
| `skill.go` | Skill* | 2 |
453-
| `config.go` | UnknownProfile, ReadProfile, UnknownFormat, UnknownProjectType, InvalidTool, UnsupportedTool, NotInitialized, ContextNotInitialized, ContextDirNotFound, FlagRequires* | 12 |
454-
| `errors.go` | Remaining general-purpose: WorkingDirectory, CtxNotInPath, ReadInput, InvalidDate*, Reminder*, Drift*, Git*, Webhook*, etc. | ~25 |
431+
| File | Prefixes / Domain | ~Count |
432+
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|
433+
| `memory.go` | Memory*, Discover* | 17 |
434+
| `parser.go` | Parser* | 7 |
435+
| `crypto.go` | Crypto*, Encrypt*, Decrypt*, GenerateKey, SaveKey, LoadKey, NoKeyAt | 14 |
436+
| `task.go` | Task*, NoTaskSpecified, NoTaskMatch, NoCompletedTasks | 8 |
437+
| `journal.go` | LoadJournalState*, SaveJournalState*, ReadJournalDir, NoJournalDir, NoJournalEntries, ScanJournal, UnknownStage, StageNotSet | 10 |
438+
| `session.go` | Session*, FindSessions, NoSessionsFound, All*, Ambiguous* | 8 |
439+
| `pad.go` | Edit*, Blob*, ReadScratchpad, OutFlagRequiresBlob, NoConflict*, Resolve* | 10 |
440+
| `recall.go` | Reindex*, Stats*, EventLog* | 6 |
441+
| `fs.go` | Read*, Write*, Open*, Stat*, File*, Mkdir*, CreateDir, DirNotFound, NotDirectory, Boundary* | 30 |
442+
| `backup.go` | Backup*, CreateBackup*, CreateArchive* | 6 |
443+
| `prompt.go` | Prompt*, NoPromptTemplate, ListTemplates, ReadTemplate, NoTemplate | 7 |
444+
| `hook.go` | Embedded*, Override*, UnknownHook, UnknownVariant, MarkerNotFound | 6 |
445+
| `skill.go` | Skill* | 2 |
446+
| `config.go` | UnknownProfile, ReadProfile, UnknownFormat, UnknownProjectType, InvalidTool, UnsupportedTool, NotInitialized, ContextNotInitialized, ContextDirNotFound, FlagRequires* | 12 |
447+
| `errors.go` | Remaining general-purpose: WorkingDirectory, CtxNotInPath, ReadInput, InvalidDate*, Reminder*, Drift*, Git*, Webhook*, etc. | ~25 |
455448

456449

457450

0 commit comments

Comments
 (0)