@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 +10 -0
- package/README.md +5 -8
- package/app/.claude-plugin/plugin.json +1 -1
- package/llms-full.txt +2 -2
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/eject.py +17 -1
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)
|
|
7
7
|
[](app/skills/)
|
|
8
8
|
[](app/agents/)
|
|
9
|
-
[](tests/)
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
## What's New in v2.7.
|
|
13
|
+
## What's New in v2.7.1
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
- **2 new
|
|
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 (
|
|
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.
|
|
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 |
|
|
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 |
|
|
4652
|
+
| Knowledge | `user-invocable: false` | Claude auto-loads | 36 |
|
|
4653
4653
|
|
|
4654
4654
|
## Multi-Agent Execution
|
|
4655
4655
|
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "2.7.
|
|
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")
|