You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -70,19 +69,20 @@ claude plugin install codemap@borda-ai-rig # structural index: import graph, b
70
69
>
71
70
> **Safe to install alongside any existing Claude Code setup.** Plugins live in a private cache (`~/.claude/plugins/cache/<plugin>/`) under their own namespace. Your existing `~/.claude/agents/`, `~/.claude/skills/`, and `settings.json` are never modified or overwritten — custom agents and skills you have created remain fully independent. See the [Claude Code plugin reference](https://code.claude.com/docs/en/plugins-reference) for details.
72
71
73
-
**4. One-time settings merge** — run inside Claude Code:
72
+
**3. One-time settings merge** — run inside Claude Code:
74
73
75
74
```text
76
-
/foundry:init
75
+
/foundry:setup
77
76
```
78
77
79
78
OSS, develop, and research skills always use their plugin prefix (`/oss:review`, `/develop:fix`, `/research:run`). Safe to re-run.
80
79
81
80
> [!IMPORTANT]
82
81
>
83
-
> **Codex CLI** — optional companion; the plugins install Claude Code agents and skills only:
82
+
> **Codex CLI** — optional companion; requires a local clone (`.codex/` config is not a plugin):
claude plugin install foundry@borda-ai-rig # reinstalls from updated source
448
449
claude plugin install oss@borda-ai-rig
449
450
claude plugin install develop@borda-ai-rig
450
451
claude plugin install research@borda-ai-rig
451
452
claude plugin install codemap@borda-ai-rig
452
453
```
453
454
454
-
Re-run `/foundry:init` only if permissions or `enabledPlugins` changed. Re-run `/foundry:init`if you previously used the link mode — symlinks point to the old plugin cache after an upgrade.
455
+
Re-run `/foundry:setup` only if permissions or `enabledPlugins` changed. Re-run `/foundry:setup`if you previously used the link mode — symlinks point to the old plugin cache after an upgrade.
claude --plugin-dir ./Borda-AI-Rig/plugins/foundry
460
462
```
461
463
@@ -469,7 +471,7 @@ claude plugin uninstall research
469
471
claude plugin uninstall codemap
470
472
```
471
473
472
-
Settings added by `/foundry:init` remain in`~/.claude/settings.json`; remove manually if desired. If `/foundry:init` was run, symlinks in`~/.claude/agents/` and `~/.claude/skills/` also persist and will be broken after uninstall — remove with `rm ~/.claude/agents/<name>.md` and `rm -rf ~/.claude/skills/<name>`for each.
474
+
Settings added by `/foundry:setup` remain in`~/.claude/settings.json`; remove manually if desired. If `/foundry:setup` was run, symlinks in`~/.claude/agents/` and `~/.claude/skills/` also persist and will be broken after uninstall — remove with `rm ~/.claude/agents/<name>.md` and `rm -rf ~/.claude/skills/<name>`for each.
Copy file name to clipboardExpand all lines: plugins/develop/skills/debug/SKILL.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -298,9 +298,9 @@ Evidence: <key signals>
298
298
**Refinements**: N passes.
299
299
```
300
300
301
-
**Follow-up gate (NEVER SKIP)** — Call `AskUserQuestion` tool — do NOT write options as plain text first. Map options directly into tool call arguments:
301
+
**Follow-up gate (NEVER SKIP)** — Call `AskUserQuestion` tool — do NOT write options as plain text first. Substitute actual `$DIAG_FILE` path (from bash block above) into option (a) label before calling tool. Map options directly into tool call arguments:
302
302
- question: "Proceed with fix?"
303
-
- (a) label: `/develop:fix --diagnosis $DIAG_FILE` — description: proceed with fix using confirmed diagnosis
303
+
- (a) label: `/develop:fix --diagnosis <DIAG_FILE>` (substitute resolved path, e.g. `/develop:fix --diagnosis .plans/active/debug_<slug>.md`) — description: proceed with fix using confirmed diagnosis
Copy file name to clipboardExpand all lines: plugins/foundry/agents/creator.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: creator
3
-
description: 'Developer advocacy content specialist for outward-facing narrative artifacts — blog posts, Marp slide decks, social threads, talk abstracts, and lightning talk outlines. Imagines the ideal reader experience first, then works backwards to structure and form. Questions status-quo conventions before accepting them; pushes for genuinely fresh angles. Reads an approved outline file (.plans/content/<slug>-outline.md) produced by the /foundry:create skill and generates the complete content artifact in one autonomous pass. Applies a four-beat story arc (Problem → Journey → Insight → Action) calibrated to the target audience. NOT for in-code documentation (docstrings, API refs, README) — use foundry:doc-scribe. NOT for release notes or changelogs — use /oss:release (requires `oss` plugin). NOT for structured reference content (FAQs, comparison tables) — those are doc-scribe scope; redirect to foundry:doc-scribe. TRIGGER when: outline file at .plans/content/<slug>-outline.md approved; user asks to write a blog post, slide deck, social thread, talk abstract, or lightning talk outline; phrases: "write a blog post", "create slides", "draft a thread", "write a talk abstract", "write a CFP submission". SKIP: outline file not found (evaluated by dispatch-time caller before spawning creator; run /foundry:create first); code documentation task (use foundry:doc-scribe); release notes or changelogs (use /oss:release — requires `oss` plugin).'
3
+
description: 'Developer advocacy content specialist for outward-facing narrative artifacts — blog posts, Marp slide decks, social threads, talk abstracts, and lightning talk outlines. Imagines the ideal reader experience first, then works backwards to structure and form. Questions status-quo conventions before accepting them; pushes for genuinely fresh angles. Reads an approved outline file (.plans/content/<slug>-outline.md) produced by the /foundry:create skill and generates the complete content artifact in one autonomous pass. Applies a four-beat story arc (Problem → Journey → Insight → Action) calibrated to the target audience. NOT for in-code documentation (docstrings, API refs, README) — use foundry:doc-scribe. NOT for release notes or changelogs — use /oss:release (requires `oss` plugin). NOT for structured reference content (FAQs, comparison tables, feature matrices, decision guides) — standalone reference artifacts route to foundry:doc-scribe; a blog post with an embedded comparison section is still creator scope (narrative arc, not standalone reference). TRIGGER when: outline file at .plans/content/<slug>-outline.md approved; user asks to write a blog post, slide deck, social thread, talk abstract, or lightning talk outline; phrases: "write a blog post", "create slides", "draft a thread", "write a talk abstract", "write a CFP submission". SKIP: outline file not found (evaluated by dispatch-time caller before spawning creator; run /foundry:create first); code documentation task (use foundry:doc-scribe); release notes or changelogs (use /oss:release — requires `oss` plugin); full artifact is structured reference format without narrative arc (use foundry:doc-scribe).'
Copy file name to clipboardExpand all lines: plugins/foundry/agents/doc-scribe.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: doc-scribe
3
-
description: 'Documentation specialist for writing docstrings, API references, and README files. Owns all FAQ and comparison-table reference content, including standalone FAQs. Use for auditing missing docstrings, writing Google-style docstrings from code, creating or updating README content, and finding doc/code inconsistencies. NOT for CHANGELOG entries or release notes (use oss:shepherd for lifecycle/format decisions, /oss:release skill for automated generation), NOT for release lifecycle README sections (version badges, PyPI install link) — use oss:shepherd, NOT for linting code examples (use foundry:linting-expert), NOT for implementation code (use foundry:sw-engineer), NOT for outward-facing narrative artifacts like blog posts, talk slides, or social threads — use foundry:creator. TRIGGER when: user asks for documentation — docstrings, README section, API reference, code comments; phrases: "write docs for", "add docstrings to", "update the README", "document this function", "add API reference". SKIP: documentation is one sentence (answer inline); user asking about existing docs read-only; implementation task (use foundry:sw-engineer).'
3
+
description: 'Documentation specialist for writing docstrings, API references, and README files. Owns all FAQ and comparison-table reference content, including standalone FAQs. Use for auditing missing docstrings, writing Google-style docstrings from code, creating or updating README content, and finding doc/code inconsistencies. NOT for CHANGELOG entries or release notes (use oss:shepherd for lifecycle/format decisions, /oss:release skill for automated generation), NOT for release lifecycle README sections (version badges, PyPI install link) — use oss:shepherd, NOT for linting code examples (use foundry:linting-expert), NOT for implementation code (use foundry:sw-engineer), NOT for outward-facing narrative artifacts like blog posts, talk slides, or social threads — use foundry:creator. TRIGGER when: user asks for documentation — docstrings, README section, API reference, code comments; phrases: "write docs for", "add docstrings to", "update the README", "document this function", "add API reference", "write a FAQ", "create a comparison table", "write a feature matrix". SKIP: documentation is one sentence (answer inline); user asking about existing docs read-only; implementation task (use foundry:sw-engineer).'
Copy file name to clipboardExpand all lines: plugins/foundry/agents/linting-expert.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: linting-expert
3
-
description: 'Static analysis and tooling specialist for Python. Use for configuring ruff rules, mypy strictness, pre-commit hooks, fixing lint/type violations, adding missing type annotations to Python source files, and defining the lint/type tool content of quality gates. Handles final code sanitization before handover. NOT for CI pipeline structure, runner strategy, or workflow topology (use oss:cicd-steward), NOT for writing test logic (use foundry:qa-specialist), NOT for implementation fixes beyond annotation/style (use foundry:sw-engineer), NOT for inline docstrings or API reference writing (use foundry:doc-scribe). TRIGGER when: after code edits when user asks "is this clean", "any lint issues", "check formatting", "check types"; linting or type errors visible in output; user pastes code with visible style violations and asks for review. SKIP: code is Python stdlib only with no project config; user explicitly said linting not needed; general code review (use foundry:sw-engineer).'
3
+
description: 'Static analysis and tooling specialist for Python. Use for configuring ruff rules, mypy strictness, pre-commit hooks, fixing lint/type violations, adding missing type annotations to Python source files, and defining the lint/type tool content of quality gates. Handles final code sanitization before handover. NOT for CI pipeline structure, runner strategy, or workflow topology (use oss:cicd-steward), NOT for writing test logic (use foundry:qa-specialist), NOT for implementation fixes beyond annotation/style (use foundry:sw-engineer), NOT for inline docstrings or API reference writing (use foundry:doc-scribe). TRIGGER when: after code edits when user asks "is this clean", "any lint issues", "check formatting", "check types"; linting or type errors visible in output; user pastes code with visible style violations and asks for review; user asks to add type annotations to existing code ("add type hints", "annotate this module", "fix annotation errors"). SKIP: code is Python stdlib only with no project config; user explicitly said linting not needed; general code review (use foundry:sw-engineer).'
@@ -375,6 +375,7 @@ Don't apply uniform hedge — produces systematic calibration bias. Only list Ga
375
375
- CI quality-gate YAML (workflow steps for ruff + mypy) → `oss:cicd-steward` (requires `oss` plugin)
376
376
- Test coverage gaps or edge-case matrices → `foundry:qa-specialist`
377
377
- Type annotation patterns in ML/tensor code → `foundry:sw-engineer` or `foundry:perf-optimizer`
378
+
- Standalone annotation task on existing code (no implementation changes) → linting-expert; annotations written alongside new implementation → `foundry:sw-engineer`
Copy file name to clipboardExpand all lines: plugins/foundry/agents/qa-specialist.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -192,6 +192,7 @@ Never claim pattern exists without confirming via Grep/Glob first. Applies to al
192
192
| File uploads or `open()` calls | Check for size limits and path traversal prevention |
193
193
| External API calls (`requests.`, `httpx.`, `aiohttp.`, `fetch`) | Check timeout, retry, and error handling *[sw-engineer domain — flag as observation only]*|
194
194
| New `import`/`from` packages | Verify package exists in `pyproject.toml` / `requirements*.txt`|
195
+
|`os.system(`, `subprocess.*`, `shlex`| Check shell-injection: verify `shell=False` (or kwarg absent); args must be list, not f-string or concatenated string; `shlex.quote()` only valid when `shell=True` strictly unavoidable |
195
196
196
197
**Domain-boundary rule**: rows tagged `[perf-optimizer domain]` or `[sw-engineer domain]` surface as observations, not qa defects. Don't count in coverage-gap totals; redirect substantive findings to owning agent.
Copy file name to clipboardExpand all lines: plugins/foundry/agents/solution-architect.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -224,6 +224,8 @@ Every artifact written to file (`docs/adr/`, `docs/design/`, or user-specified p
224
224
| Type-annotation circular import | Use `from __future__ import annotations` + `TYPE_CHECKING` guard: `if TYPE_CHECKING: from module import Type` — eliminates runtime import while preserving type checker support |
225
225
| Destructive migration before consumer cutover | Use expand-contract: add new columns, deploy reader of new columns, then drop old columns in separate migration after all readers migrated |
226
226
| Undocumented boundary placement | Write ADR before any restructure; must state ownership principle so future engineers don't re-create same ambiguity |
227
+
| LSP violation | Subclass overrides with `NotImplementedError`/`pass` body or call sites use `isinstance`/cast before using base type → flatten hierarchy; prefer Protocol structural typing over ABC enforcement |
228
+
| ISP violation | Protocol or ABC with >5 methods where callers use only a partial subset → split into focused protocols per usage cluster; Protocol over ABC for structural typing in Python |
0 commit comments