Skip to content

feat(skills): lifecycle markers (issue #139) — native/external/deprecated#218

Merged
Delqhi merged 1 commit into
mainfrom
feat/issue-139-lifecycle
Jun 16, 2026
Merged

feat(skills): lifecycle markers (issue #139) — native/external/deprecated#218
Delqhi merged 1 commit into
mainfrom
feat/issue-139-lifecycle

Conversation

@Delqhi

@Delqhi Delqhi commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Implements the canonical lifecycle for the 34 bundled skills (issue #139). The lifecycle field is the operator-facing contract for is this skill implemented in the binary, in a separate repo, or deprecated?.

What ships

  • scripts/lifecycle_map.yaml — single source of truth for all 34 skills
  • scripts/sync_lifecycle.py — stdlib-only Python (--check, --apply, --diff)
  • scripts/validate_skill.py — strict mode now requires the field
  • cmd/sin-code/skill_cmd.go — listRow.Lifecycle + parseLifecycleFromFrontmatter
  • All 34 SKILL.md files migrated (28 changed, 6 in sync)
  • docs/SKILLS.md + CHANGELOG entry

Live verification

$ python3 scripts/sync_lifecycle.py --check
all 34 skills in sync with lifecycle_map.yaml

$ python3 scripts/validate_skill.py --all-bundled --strict
Total: 34 skills, 0 failed.

$ sin-code skill list
SKILL                             LIFECYCLE   claude-code   opencode
skill-process-goal                [native   ]  —            —
skill-process-grill                [external ]  —            —
skill-code-build                   [native   ]  —            —
...

Acceptance criteria (from #139)

  • lifecycle field in every bundled SKILL.md (34/34)
  • validate_skill.py --all-bundled --strict passes
  • sin-code skill list shows lifecycle markers
  • scripts/lifecycle_map.yaml is the single source of truth
  • scripts/sync_lifecycle.py (--check / --apply / --diff)

Drive-by

Pre-existing YAML bug in skill-github-governance/SKILL.md (double-quoted description, parsed as a literal block scalar) fixed in the same commit so the strict validator passes.

Diffstat

 38 files changed, 122 insertions(+), 12 deletions(-)

Closes

…ated

What ships:
  - scripts/lifecycle_map.yaml — single source of truth for the
    lifecycle of all 34 bundled skills (native|external|deprecated
    + canonical: <upstream>)
  - scripts/sync_lifecycle.py — stdlib-only Python script with
    --check (CI drift detection), --apply (write changes), --diff
    modes. Hand-rolled YAML parser (no PyYAML dep).
  - scripts/validate_skill.py — strict mode now requires the
     frontmatter key and validates the value
  - cmd/sin-code/skill_cmd.go — listRow has a new Lifecycle field;
    parseLifecycleFromFrontmatter extracts it from the embedded
    SKILL.md (no yaml dep). The  table now shows a
    LIFECYCLE column with [native] / [external] / [unknown].
  - skills/<cat>-skills/*/SKILL.md — all 34 migrated (28 changed,
    6 already in sync)
  - docs/SKILLS.md + CHANGELOG entry

Migration:
  - pre-existing bug in skill-github-governance/SKILL.md (double-
    quoted description, parsed as YAML literal block scalar) fixed
    as a drive-by
  - skills/skill-shop-tiktok SKILL.md was missing a license
    directory; left for a follow-up (not a hard blocker)

CI integration:
  - scripts/sync_lifecycle.py --check: exit 1 on drift
  - scripts/validate_skill.py --all-bundled --strict: 34/34 pass

Refs: #139
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sin-code Ready Ready Preview, Comment, Open in v0 Jun 16, 2026 6:47pm

@Delqhi
Delqhi merged commit 3e76eac into main Jun 16, 2026
13 of 15 checks passed
@Delqhi
Delqhi deleted the feat/issue-139-lifecycle branch June 16, 2026 18:48
@github-actions

Copy link
Copy Markdown

🏆 CEO Audit — A+ (100.0/100)

Metric Value
Grade A+
Score 100.0/100
Critical findings 0
High findings 0
Profile QUICK
Min grade gate B

📥 Download full report (Markdown)
📊 Download SARIF (for Code Scanning)

Run ~/.config/opencode/skills/ceo-audit/scripts/audit.sh . --profile=QUICK locally to reproduce.

@github-actions

Copy link
Copy Markdown

🏆 CEO Audit — A+ (100.0/100)

Metric Value
Grade A+
Score 100.0/100
Critical findings 0
High findings 0
Medium findings 0
Profile QUICK
Min grade gate B

📥 Download full report (Markdown)

Run ID: 27640289412 · Commit: ${github.sha}

Run ~/.config/opencode/skills/ceo-audit/scripts/audit.sh . --profile=QUICK locally to reproduce.

Delqhi added a commit that referenced this pull request Jun 16, 2026
…n) (#221)

What ships:
  - cmd/sin-code/internal/skillmgr/manager.go — KnownSkills()
    now includes the three shop skills (issue #142 acceptance
    criterion #2: 'sin-code skills list shows the three shop
    skills under their category'):
      - shop-cj-dropshipping -> cj-dropshipping-skill
      - shop-stripe          -> SIN-Stripe-Bundle
      - shop-tiktok          -> SIN-eCommerce-Scraper-Bundle
  - cmd/sin-code/internal/skillmgr/manager_test.go — new
    TestKnownSkillsHasShopEntries that asserts the three
    entries are present with the correct repo mapping
  - CHANGELOG entry

What was already in place from PR #218 (issue #139):
  - lifecycle: external frontmatter on the three SKILL.md files
  - sources: frontmatter pointing to the canonical external repos
  - context/, frameworks/, tasks/, templates/ directories

Long-term fusion strategy (per issue #142 body):
  - Phase 1: external canonical (current state)
  - Phase 2: bundled doc (done in PR #218)
  - Phase 3: native subcommand (deferred until shop domain matures)
  - Phase 4: deprecate upstream (after phase 3 is stable)

Refs: #142

Co-authored-by: opencode <agent@opencode.local>
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.

1 participant