421 Commits
Author SHA1 Message Date
Addy OsmaniandGitHub be42637c5a Merge #474: emit standard SessionStart envelope (#465)
fix(hooks): emit the standard SessionStart envelope (#465)
2026-08-11 12:48:56 -07:00
Addy OsmaniandGitHub 7676817c12 Merge #469: fix references/ links and add CI validator (#468)
fix(skills): resolve references/ links from the skill directory
2026-08-08 14:05:56 -07:00
ayobamiseun abfb0b3200 fix(hooks): emit the standard SessionStart envelope (#465)
The session-start hook emitted {"priority", "message"} JSON on all three
of its output paths. Codex CLI validates SessionStart hook output and
fails the hook on that shape ('hook returned invalid session start JSON
output', #465); the documented contract for both Codex and Claude Code is

  {"hookSpecificOutput": {"hookEventName": "SessionStart",
                          "additionalContext": "..."}}

Switch all three paths (meta-skill injection, jq-missing fallback,
meta-skill-missing fallback) to that envelope. Verified each path emits
valid JSON of the new shape: happy path via jq shape assertion, jq-missing
via PATH='' run, meta-skill-missing via a copy outside the repo.
2026-08-08 18:41:01 +01:00
Federico BartoliandGitHub f49337711b Merge pull request #53 from KoolP/add-retrieval-safety-guard
Add retrieval safety guard to source-driven-development skill
2026-08-08 11:55:27 +02:00
coolTheWorldandClaude Opus 5 b293c02481 ci: add a gate for references/ links in skills
The path fix has no regression guard: nothing in CI resolves references/
links, so all 18 were broken while CI stayed green. validate-artifact-
paths.js is scoped to spec/plan/todo artifacts and says in its own header
that it is not a general markdown path linter.

Add validate-reference-links.js, which resolves every `references/*.md`
link in skills/*/SKILL.md against that skill's own directory. This accepts
both conventions in CLAUDE.md: shared checklists reached via
../../references/, and a skill's own colocated references/ directory.

Scope stays narrow on purpose. Skills legitimately name paths that do not
exist yet -- tasks/todo.md, PERF.md, docs/ideas/[idea-name].md -- and a
general markdown linter would fail the build on them. A test pins that.

Proven against the pre-fix tree: 18 error(s), exit 1, matching the 18
links fixed in the previous commit. After the fix: 0 error(s), exit 0.

7 unit tests cover the regression itself, colocated references/,
markdown-link syntax, a renamed target, multiple violations in one skill,
and the non-reference paths that must be ignored. Wired into the
validate-skills job, alongside the other skill-content checks.

Known limitation: fenced code blocks are not stripped, so a SKILL.md that
documents the anti-pattern inside a fence would be flagged. Nothing does
today. Sharing stripFencedCodeBlocks looks right once #444 lands.

Refs #468

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 07:27:44 -04:00
coolTheWorldandClaude Opus 5 91d4d07522 fix(skills): resolve references/ links from the skill directory
Every SKILL.md linked the shared checklists as `references/<file>.md`, a
path relative to the skill's own directory. Those files live in the repo
root `references/`, two levels up, so all 18 links across 11 skills
resolved to paths that do not exist -- in the repo and in every
plugin-install layout (~/.claude/plugins/cache/..., ~/.codex/...).

An agent following the guidance -- using-agent-skills pointing at the
Definition of Done, for example -- hit a file-not-found on every one.

Rewrite the 18 links to `../../references/<file>.md`, which resolves
correctly from `skills/<name>/`. Text-only; no structure or tone changed.

Verified: all 18 links resolve; hooks/session-start-test.sh passes
(required by CONTRIBUTING.md when touching using-agent-skills/SKILL.md);
validate-skills, validate-versions, validate-commands and
validate-artifact-paths all pass.

Refs #468

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 07:27:44 -04:00
Addy OsmaniandGitHub d2478bf0c7 Merge #458: clean up throwaway eval workspaces
fix: clean up throwaway workspace directories after eval runs
2026-08-06 15:44:15 -07:00
Addy OsmaniandGitHub 2211c9db0a Merge #456: validate --behavioral skill name
security: validate --behavioral skillName to prevent path traversal
2026-08-06 15:44:11 -07:00
Addy OsmaniandGitHub 6ff936ac3d Merge #452: complete Codex install flow and manifest metadata
fix(codex): complete plugin install flow and manifest metadata
2026-08-06 15:44:07 -07:00
Addy OsmaniandGitHub 471b6f1da6 Merge #450: add Command Code as a native skills provider
docs: add Command Code as a native skills provider
2026-08-06 15:44:03 -07:00
Addy OsmaniandGitHub d915f004ce Merge #464: guard spec/plan/todo artifact paths
ci: guard spec/plan/todo artifact paths against silent drift
2026-08-06 15:43:58 -07:00
Addy OsmaniandGitHub 344694cf5e Merge #451: pin all plugin manifests to the release version (#440)
Fix plugin manifest version consistency
2026-08-06 15:38:56 -07:00
Joan Leon ce5e12bd5a ci: add validator guarding spec/plan/todo artifact paths
The /spec and /plan commands write spec, plan, and todo artifacts to paths that /build and the spec/plan skills read back. When a producer moves an artifact without updating the consumers, the pipeline breaks and nothing in CI catches it: the command-parity check only compares descriptions, not paths. PR #93 hit exactly this, pointing /spec and /plan at docs/features/[name]/ while /build still required SPEC.md and tasks/plan.md.

validate-artifact-paths.js enforces one canonical set of artifact paths across every file in the pipeline (the spec/plan/build commands, the spec-driven-development and planning-and-task-breakdown skills, and the getting-started and adoption guides). Any spec/plan/todo artifact path outside the allowlist fails CI, so changing the convention has to touch the allowlist and every guarded file in the same change.

Scope is deliberately narrow: only spec/plan/todo artifacts, only the pipeline files; it is not a general markdown path linter. Wired into the validate-commands CI job alongside its test.
2026-08-07 00:02:47 +02:00
Joan LeónandGitHub f03b4a84b0 Merge pull request #459 from ENNEADLABS/ci/bump-actions-drop-node20
ci: bump actions to Node 24 runtimes and drop EOL Node 20
2026-08-05 21:09:28 +02:00
ENNEADandClaude Fable 5 26d08c719b ci: bump actions to Node 24 runtimes and drop EOL Node 20
actions/checkout@v4 and actions/setup-node@v4 target the deprecated Node 20
runner runtime, so every run logs forced-Node-24 deprecation annotations.
Harmonize checkout on the v6 major already used by the other three jobs,
bump setup-node to v6, and move node-version from Node 20 (EOL 2026-04-30)
to Node 24 LTS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 20:54:18 +02:00
Sunil 21fea4d528 fix: clean up throwaway workspace directories after eval runs
materializeWorkspace() creates directories in os.tmpdir() but
runBehavioral() never cleans them up on success or failure. If
execFileSync throws (timeout, signal, OOM), the workspace persists
in /tmp indefinitely with fixture data. The test file
run-evals-test.js uses try/finally cleanup (line 234), proving
the pattern was known but omitted in production code.

Fix: Wrap eval execution in try/finally with best-effort
fs.rmSync cleanup.
2026-08-05 22:37:48 +05:30
Sunil 4b3122e65f security: validate --behavioral skillName to prevent path traversal
The skillName argument from --behavioral has zero validation and is
used directly in path.join() for reading .json files, reading
SKILL.md, and WRITING .grading.json results. A value like
'../../etc/passwd' traverses outside the project directory for
both reads and writes.

Fix: Validate skillName against /^[a-z0-9]+(-[a-z0-9]+)*$/ before
any filesystem operations. This matches the existing KEBAB_CASE
validation in skill-lint.js.
2026-08-05 22:35:47 +05:30
mksong 6a52513fe3 fix(codex): align plugin metadata and complete CLI setup 2026-08-05 13:57:09 +09:00
LiyukandGitHub 0663a4e6e8 Fix plugin manifest version consistency 2026-08-04 08:01:41 -07:00
LiyukandGitHub a58fb3c319 Fix plugin manifest version consistency 2026-08-04 08:01:30 -07:00
LiyukandGitHub a567a9537c Fix plugin manifest version consistency 2026-08-04 08:00:51 -07:00
LiyukandGitHub 45ae035de1 Fix plugin manifest version consistency 2026-08-04 08:00:39 -07:00
LiyukandGitHub 65d41e529b Fix plugin manifest version consistency 2026-08-04 08:00:36 -07:00
LiyukandGitHub 0140c5869c Fix plugin manifest version consistency 2026-08-04 08:00:32 -07:00
LiyukandGitHub b3ee6a4975 Fix plugin manifest version consistency 2026-08-04 08:00:11 -07:00
LiyukandGitHub 7186284313 Fix plugin manifest version consistency 2026-08-04 07:59:55 -07:00
Addy OsmaniandGitHub bdf76c7c6b Merge #442: document the per-skill reference limitation (#361)
docs: explain per-skill reference limitation (#361)
0.6.6
2026-08-03 13:14:50 -07:00
Addy OsmaniandGitHub f03e906423 Merge #443: add command-validator regression coverage
test(ci): add command validator regression coverage
2026-08-03 13:14:46 -07:00
Addy Osmani 0e6291576d Merge fix/449: remove agents key so Claude Code loads the four personas (#449) 2026-08-03 13:10:51 -07:00
Addy Osmani 366beecb73 fix(plugin): remove agents key so Claude Code loads the four personas (#449)
The explicit agents array in .claude-plugin/plugin.json causes Claude Code
to load zero subagents; it discovers agents/*.md on its own, and the explicit
list suppresses that discovery. Reproduced on Claude Code 2.1.219: with the
key present, plugin details reports Agents (0); with it removed, all four load
(code-reviewer, security-auditor, test-engineer, web-performance-auditor).

Safe to omit since #260 moved agents/README.md into docs/, so the agents/
directory now holds only real agent definitions. Scoped to the Claude Code
manifest only; the Codex manifest is untouched.
2026-08-03 13:00:49 -07:00
75dfcb3348 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-03 20:31:18 +05:30
Vipul Gupta (@vipulgupta2048)andCommandCodeBot e8089ebe61 docs: add Command Code as a native skills provider
Command Code has a native skills CLI (cmd skills add <owner/repo>) that
clones the repo, discovers every SKILL.md, and installs into
.commandcode/skills/ — no plugin manifest or copied files needed.

- README: add Command Code install block
- docs/commandcode-setup.md: setup guide (install/manage/usage, paths)
- docs/comparison.md: add Command Code to tooling reach

Verified end-to-end against addyosmani/agent-skills: add (all / -s / @branch /
path / --global / --force), list (+ -d), and remove (project / --global) via
the CLI, plus skill discovery in the TUI slash menu.

Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipulgupta2048@gmail.com>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipulgupta2048@gmail.com>
2026-08-02 23:54:39 +05:30
ayobamiseun 4063947e3f test: cover command validator behavior 2026-08-01 10:41:53 +01:00
ayobamiseun b70fbe910e docs: explain per-skill reference limitation 2026-08-01 10:28:06 +01:00
Federico BartoliandGitHub 7829ffd90d Merge pull request #425 from ayobamiseun/feat/404-catalog-npm-neutrality
docs(skills): extend ecosystem-neutral commands catalog-wide (#404 Phase 2)
2026-07-26 14:51:12 +02:00
ayobamiseun 245714936b docs(security): align audit phrasing — the ecosystem's dependency audit
'Native dependency audit' collides with the established meaning of
native dependencies (compiled modules); use the same unambiguous
phrasing as the shipping-and-launch checkbox in this PR.
2026-07-26 13:43:20 +01:00
Addy OsmaniandGitHub 2471e3f904 Merge pull request #403 from asiridalugoda: verify step (keep-or-revert) for performance-optimization
docs(performance): add Step 4 (verify with keep-or-revert)
2026-07-25 19:22:17 -07:00
Joan LeónandGitHub ff2df4c07e Merge pull request #236 from nucliweb/add-references-to-skill-anatomy
docs: add optional references, examples, and resources directories to skill anatomy
0.6.5
2026-07-24 11:04:23 +02:00
Joan Leon 4df5698502 docs: distinguish loose supporting file from skill-local references/ subdir
Addresses the clarity nit in #236 review: a single supporting doc stays a
loose file, and the skill-local references/ subdir is for grouping several
related docs that travel with the skill. Ties the new bullet back to the
existing Supporting files entry so the framings read as one.
2026-07-24 10:31:39 +02:00
ayobamiseun 45ccfb6f3d docs(skills): extend ecosystem-neutral commands catalog-wide (#404 Phase 2)
Follow-up to #419, addressing the remaining normative npm-family
commands federicobartoli's grep on #404 identified:

- incremental-implementation: the four increment-checklist exit criteria
  and the example prompt now use the repository's own test/build/
  typecheck/lint commands, pointing at the TDD skill's Discover the
  Stack First section
- planning-and-task-breakdown: task-template verification lines use the
  template's placeholder style instead of hardcoded npm commands
- shipping-and-launch: the security checkbox names the ecosystem's
  dependency audit rather than npm audit alone
- debugging-and-error-recovery: the diagnosis/bisect/verify command
  blocks are labeled as npm examples with substitution notes
- references/security-checklist.md: OWASP row 6 generalizes npm audit
  to the native dependency audit
- security-and-hardening needed no change: its SKILL.md was already
  neutralized (detected-package-manager wording)

Ride-along: pins the below-zero debit behavior (ValueError) in TDD eval
case 3, per nucliweb's non-blocking review note on #419.
2026-07-22 21:35:05 +01:00
Addy OsmaniandGitHub fefc4075dd Merge pull request #419 from ayobamiseun/feat/404-tdd-ecosystem-neutral
docs(tdd): make test-driven-development ecosystem-neutral (#404 Phase 1)
2026-07-21 20:50:27 -07:00
Addy OsmaniandGitHub 1856cad54a Merge pull request #420 from jagadishs-oss/fix/quote-opt-in-hook-paths
fix(hooks): quote opt-in hook paths in setup docs
2026-07-21 20:50:21 -07:00
Addy OsmaniandGitHub c4bdf386be Merge pull request #418 from Alex7develop/contrib/412-skill-gap-issue-form
docs: add skill-gap issue form for reporting guidance mismatches
2026-07-21 20:50:15 -07:00
Patrik Rikama-HinnenbergandClaude Fable 5 6681f80a11 docs(source-driven-development): add outbound-endpoint hygiene rule + verification checkbox
Per review: never hardcode outbound endpoints (telemetry, analytics,
similar) from fetched examples without surfacing them to the user, even
when docs mark them as required. Adds the verification checkbox the PR
description referenced. A/B tested on claude-opus-4-7 against the
required-telemetry injection case: 2/2 guarded runs refused to hardcode
the endpoint where 2/2 baseline runs kept it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 15:49:51 +03:00
Joan Leon 8fd208160c docs: document skill-local references/ directory in skill anatomy 2026-07-20 18:44:55 +02:00
Patrik Rikama-HinnenbergandClaude Fable 5 dee22bf2a0 docs(source-driven-development): trim retrieval safety section per review
Replace the rationale paragraph with a pack-style pointer to
security-and-hardening, which covers the LLM01 threat model, so the
section starts straight from "Fetched documentation pages are untrusted
input" and keeps only the extraction-hygiene instruction. Also fix the
"user's permission" apostrophe in the new red flag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 14:34:24 +03:00
JagadishandGitHub 9497ed8969 Merge branch 'addyosmani:main' into fix/quote-opt-in-hook-paths 2026-07-20 09:11:15 +05:30
JagadishandCursor bb68af5624 fix(hooks): quote opt-in hook paths in setup docs
Unquoted ${CLAUDE_PROJECT_DIR} in SDD-CACHE and SIMPLIFY-IGNORE setup
examples breaks when the project path contains spaces, the same class
of failure fixed for SessionStart in #214.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 09:03:58 +05:30
ayobamiseun 2e49319164 docs(tdd): make test-driven-development ecosystem-neutral (#404 Phase 1)
- SKILL.md gains a 'Discover the Stack First' step: identify the
  language, build system, checked-in wrappers, test framework, and
  documented commands before choosing any test command, and run the
  repository's own focused/full-suite commands throughout the loop
- verification checklist no longer hardcodes 'npm test'; red flag added
  for reaching for a default test command without checking the repo
- references/testing-patterns.md relabeled in place as JavaScript/
  TypeScript examples illustrating the universal principles (no
  relocation, per the #361/#236 sequencing agreed in the issue)
- new behavioral eval: a Python/unittest fixture verifying the skill
  adapts to non-npm repository tooling
2026-07-19 17:08:30 +01:00
Alex7developandCursor b68f553a1b docs: add skill-gap issue form for reporting guidance mismatches
Gives contributors a short intake path when a skill assumes the wrong
ecosystem or outdated steps, so gaps like #404 reach maintainers via
the repo instead of external channels. Closes the intake-only scope
from #412.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 15:37:19 +03:00