Skip to content

feat(templates): add standalone sync-oss-spec skill to generated projects#36

Merged
niclaslindstedt merged 1 commit intomainfrom
claude/oss-spec-sync-standalone-Egyrl
Apr 18, 2026
Merged

feat(templates): add standalone sync-oss-spec skill to generated projects#36
niclaslindstedt merged 1 commit intomainfrom
claude/oss-spec-sync-standalone-Egyrl

Conversation

@niclaslindstedt
Copy link
Copy Markdown
Owner

@niclaslindstedt niclaslindstedt commented Apr 18, 2026

Summary

Scope: template skills only — the skill set that oss-spec copies into every generated project. The reference repo's own .agent/skills/ tree is untouched.

  • Adds a new templates/_common/.agent/skills/sync-oss-spec/ template skill. It fetches the canonical OSS_SPEC.md from the upstream GitHub raw URL at the start of every run, overwrites the local copy if upstream has moved, then walks every §19 structural mandate with plain shell (test, readlink, grep, find). No external validator binary is invoked — generated projects don't ship oss-spec on PATH.
  • Reorders the template maintenance registry so sync-oss-spec runs first, ensuring every downstream update-* skill reads the freshest spec.
  • Annotates each template update-* skill with a "Governing spec sections" line that pins it to the §§ of OSS_SPEC.md it serves: §3 (README), §11.1 (docs), §11.2 (website), §12.3/§12.5 (manpages), §13.5 (prompts), §21.5 (why this skill exists), §21.6 (maintenance umbrella).

Test plan

  • cargo clean && cargo buildinclude_dir! picks up the new template skill
  • cargo test --test self_conformance_test — reference-repo conformance unchanged
  • cargo test --test bootstrap_smoke_test — generated project still passes validate::run (including §21.4 .last-updated presence)
  • make lint && make test — full suite green

https://claude.ai/code/session_019J34nuo9BRGnZwiSvHhZCf

…ects

Adds a `sync-oss-spec` template skill that every project bootstrapped
by `oss-spec` inherits. The skill:

- fetches the canonical `OSS_SPEC.md` from
  https://raw.githubusercontent.com/niclaslindstedt/oss-spec/main/OSS_SPEC.md
  at the start of every run (hard stop on fetch failure);
- overwrites the local `OSS_SPEC.md` whenever upstream has moved;
- encodes every §19 structural check as plain shell (`test`, `readlink`,
  `grep`, `find`) so it works without any external validator binary —
  generated projects do not ship `oss-spec`.

Updates the template `maintenance` registry so `sync-oss-spec` runs
**first**, ensuring every downstream `update-*` skill reads the
freshest spec. Annotates each `update-*` skill with the `OSS_SPEC.md`
section(s) that govern it:

- update-readme     → §3, §21.5
- update-docs       → §11.1, §21.5
- update-prompts    → §13.5, §21.5
- update-website    → §11.2, §21.5
- update-manpages   → §12.3, §12.5, §21.5
- maintenance       → §21.6
@niclaslindstedt niclaslindstedt force-pushed the claude/oss-spec-sync-standalone-Egyrl branch from 0c40871 to f8e9812 Compare April 18, 2026 16:36
@niclaslindstedt niclaslindstedt changed the title refactor(skills): make sync-oss-spec standalone and fetch spec from GitHub feat(templates): add standalone sync-oss-spec skill to generated projects Apr 18, 2026
@niclaslindstedt niclaslindstedt marked this pull request as ready for review April 18, 2026 17:10
@niclaslindstedt niclaslindstedt merged commit 470004f into main Apr 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants