@softspark/ai-toolkit 2.7.0 → 2.7.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/CHANGELOG.md CHANGED
@@ -7,6 +7,16 @@ Versioning follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## v2.7.1 — Eject Output-Styles Fix (2026-04-17)
11
+
12
+ ### Fixed
13
+ - **`ai-toolkit eject` now exports `app/output-styles/*.md`** — pre-existing gap dating back to when output-styles were introduced. `scripts/eject.py` copied agents, skills, rules, constitution, and ARCHITECTURE, but silently skipped the `output-styles/` directory. Standalone `.claude/` produced by eject had no system-prompt styles (no `golden-rules`, and after v2.7.0 no `learning`/`explanatory`). Now eject writes `.claude/output-styles/` with all source `.md` files and includes the count in the summary line: `Ejected: N agents, N skills, N rules, N output style(s)`.
14
+
15
+ ### Added
16
+ - **2 `tests/test_eject.bats` cases** — `eject copies output-styles directory with all source styles` (also asserts `golden-rules.md` baseline) and `eject reports output-style count in summary line`. Test count: 664 → 666.
17
+
18
+ ---
19
+
10
20
  ## v2.7.0 — Anthropic Ecosystem Alignment (2026-04-17)
11
21
 
12
22
  ### Added
package/README.md CHANGED
@@ -6,17 +6,14 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
7
  [![Skills](https://img.shields.io/badge/skills-99-brightgreen)](app/skills/)
8
8
  [![Agents](https://img.shields.io/badge/agents-44-blue)](app/agents/)
9
- [![Tests](https://img.shields.io/badge/tests-664%20passing-success)](tests/)
9
+ [![Tests](https://img.shields.io/badge/tests-666%20passing-success)](tests/)
10
10
 
11
11
  ---
12
12
 
13
- ## What's New in v2.7.0
13
+ ## What's New in v2.7.1
14
14
 
15
- - **5 new skills aligned with Anthropic ecosystem** `/mcp-builder` (task skill: 4-phase MCP server build methodology, research implement test evaluate) and 4 knowledge skills auto-loaded for Claude API work: `prompt-caching-patterns`, `json-mode-patterns`, `content-moderation-patterns`, `model-routing-patterns`. Skill count: 94 99.
16
- - **2 new output styles** in `app/output-styles/` `learning` (interactive "your turn" prompts on meaningful decisions) and `explanatory` (★ Insight blocks surfacing implementation trade-offs). Both stack with the existing `golden-rules` style.
17
- - **`/review` secrets scanner hardened** — `diff-analyzer.py` now tracks actual file line numbers (not diff offsets) per hunk, detects renames via `git diff --numstat -z`, surfaces a `warnings[]` array when falling back from branch diff to staged, and expands secret patterns (JWT, PEM private keys, Google API, Slack tokens, GitHub fine-grained PAT, unquoted env-style). Category regex tightened with word boundaries and anchored path patterns (`docs/role-permissions.md` is no longer miscategorised as security). 4 fixture tests in `tests/test_review_diff_analyzer.bats`.
18
- - **Frontmatter Schema reference** — new section in `app/ARCHITECTURE.md` and canonical spec mirror at `kb/reference/agent-skills-spec.md` (in rag-mcp KB). Documents ai-toolkit's extensions beyond `agentskills.io/specification` and the comma-separated `allowed-tools` convention enforced by `codex_skill_adapter.py` and `audit_skills.py`.
19
- - **Test count:** 660 → 664.
15
+ - **`ai-toolkit eject` now copies `app/output-styles/*.md`** pre-existing gap since output-styles were introduced: eject produced a standalone `.claude/` without any system-prompt styles, so `golden-rules`, `learning`, and `explanatory` silently dropped out after ejecting. Now eject writes `.claude/output-styles/` with all source `.md` files and reports the count in the summary line: `Ejected: N agents, N skills, N rules, N output style(s)`.
16
+ - **2 new `tests/test_eject.bats` cases** covering output-styles: directory created + file count matches source + `golden-rules.md` baseline, and summary line reports correct count. Test count: 664 666.
20
17
 
21
18
  See [CHANGELOG.md](CHANGELOG.md) for full history.
22
19
 
@@ -144,7 +141,7 @@ ai-toolkit/
144
141
  │ └── ARCHITECTURE.md # Full system design
145
142
  ├── kb/ # Reference docs, procedures, plans
146
143
  ├── scripts/ # Validation, install, evaluation scripts
147
- ├── tests/ # Bats test suite (664 tests)
144
+ ├── tests/ # Bats test suite (666 tests)
148
145
  └── CHANGELOG.md
149
146
  ```
150
147
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-toolkit",
3
3
  "description": "Professional-grade Claude Code toolkit with persona presets, skill security auditor, expanded lifecycle hooks, experimental opt-in plugin packs, benchmark harvesting, and multi-tool support.",
4
- "version": "2.7.0",
4
+ "version": "2.7.1",
5
5
  "author": {
6
6
  "name": "SoftSpark",
7
7
  "url": "https://github.com/softspark"
package/llms-full.txt CHANGED
@@ -4647,9 +4647,9 @@ Three tiers determine how to approach a task:
4647
4647
 
4648
4648
  | Type | Field | Invocation | Count |
4649
4649
  |------|-------|-----------|-------|
4650
- | Task | `disable-model-invocation: true` | User via `/skill` only | 31 |
4650
+ | Task | `disable-model-invocation: true` | User via `/skill` only | 32 |
4651
4651
  | Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
4652
- | Knowledge | `user-invocable: false` | Claude auto-loads | 32 |
4652
+ | Knowledge | `user-invocable: false` | Claude auto-loads | 36 |
4653
4653
 
4654
4654
  ## Multi-Agent Execution
4655
4655
 
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.7.0",
2
+ "version": "2.7.1",
3
3
  "components": {
4
4
  "agents": {
5
5
  "description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softspark/ai-toolkit",
3
- "version": "2.7.0",
3
+ "version": "2.7.1",
4
4
  "description": "Professional-grade AI coding toolkit: 99 skills, 44 agents, multi-platform support (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo Code, Aider, Augment, Google Antigravity, Codex CLI, opencode), machine-enforced safety constitution, persona presets, skill security auditor, expanded lifecycle hooks, 11 plugin packs, and benchmark tooling.",
5
5
  "keywords": [
6
6
  "claude",
package/scripts/eject.py CHANGED
@@ -7,6 +7,7 @@ target directory with no symlinks and no dependency on ai-toolkit.
7
7
  What it exports:
8
8
  - .claude/agents/*.md (real files, not symlinks)
9
9
  - .claude/skills/*/ (real directories, not symlinks)
10
+ - .claude/output-styles/*.md (system-prompt styles)
10
11
  - .claude/CLAUDE.md (inlined rules)
11
12
  - .claude/constitution.md (full content)
12
13
  - .claude/ARCHITECTURE.md (full content)
@@ -90,6 +91,21 @@ def main() -> None:
90
91
  rule_count += 1
91
92
  print(f" Inlined: {rule_count} rules into CLAUDE.md")
92
93
 
94
+ # -- Output styles: copy as real files -----------------------------------
95
+ print("## Output Styles")
96
+ style_count = 0
97
+ styles_src = app_dir / "output-styles"
98
+ if styles_src.is_dir():
99
+ styles_out = claude_dir / "output-styles"
100
+ styles_out.mkdir(parents=True, exist_ok=True)
101
+ for style in sorted(styles_src.glob("*.md")):
102
+ dest = styles_out / style.name
103
+ if dest.is_symlink():
104
+ dest.unlink()
105
+ shutil.copy2(style, dest)
106
+ style_count += 1
107
+ print(f" Copied: {style_count} output style(s)")
108
+
93
109
  # -- Constitution and Architecture ---------------------------------------
94
110
  print("## Config Files")
95
111
  for filename in ("constitution.md", "ARCHITECTURE.md"):
@@ -104,7 +120,7 @@ def main() -> None:
104
120
  # -- Summary -------------------------------------------------------------
105
121
  print()
106
122
  print("========================")
107
- print(f"Ejected: {agent_count} agents, {skill_count} skills, {rule_count} rules")
123
+ print(f"Ejected: {agent_count} agents, {skill_count} skills, {rule_count} rules, {style_count} output style(s)")
108
124
  print()
109
125
  print(f"The toolkit is now standalone in {target_dir.resolve()}/.claude/")
110
126
  print("You can safely run: npm uninstall -g @softspark/ai-toolkit")