Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .agents/scripts/test_skill_release.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_version_extraction_step_executes_and_writes_outputs(self) -> None:
else:
os.environ["GITHUB_OUTPUT"] = previous_output

self.assertEqual(output_path.read_text(encoding="utf-8"), "skill_version=0.2.0\ntag=v0.2.0\n")
self.assertEqual(output_path.read_text(encoding="utf-8"), "skill_version=0.2.1\ntag=v0.2.1\n")

def test_version_extraction_step_rejects_invalid_numeric_prerelease_identifiers(self) -> None:
workflow = WORKFLOW.read_text(encoding="utf-8")
Expand All @@ -85,7 +85,7 @@ def test_version_extraction_step_rejects_invalid_numeric_prerelease_identifiers(
skill_path = root / "skills/api-to-typemcp/SKILL.md"
skill_path.parent.mkdir(parents=True)
skill_path.write_text(
original.replace("version: 0.2.0", f"version: {invalid_version}"),
original.replace("version: 0.2.1", f"version: {invalid_version}"),
encoding="utf-8",
)
previous_cwd = Path.cwd()
Expand Down Expand Up @@ -243,9 +243,9 @@ def test_existing_unpublished_skill_is_recovered_before_version_reconciliation(s
[
(200, {"data": [{"slug": "integration"}]}),
(200, {"slug": "api-to-typemcp", "status": "DRAFT"}),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.0"}),
(200, [{"version": "0.2.0"}]),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.0"}),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.1"}),
(200, [{"version": "0.2.1"}]),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.1"}),
]
)
calls: list[tuple[str, str]] = []
Expand All @@ -258,7 +258,7 @@ def mocked_request(

environment = {
"SKILLS_HUB_AI_API_KEY": "test-key",
"SKILL_VERSION": "0.2.0",
"SKILL_VERSION": "0.2.1",
"GITHUB_SHA": "test-sha",
"GITHUB_REPOSITORY": "Theorvane/type-mcp-api-agent-skill",
}
Expand All @@ -280,8 +280,8 @@ def test_version_conflict_is_reconciled_without_a_second_mutation(self) -> None:
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED"}),
(200, []),
(409, {"error": "version already exists"}),
(200, [{"version": "0.2.0"}]),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.0"}),
(200, [{"version": "0.2.1"}]),
(200, {"slug": "api-to-typemcp", "status": "PUBLISHED", "latestVersion": "0.2.1"}),
]
)
calls: list[tuple[str, str]] = []
Expand All @@ -294,7 +294,7 @@ def mocked_request(

environment = {
"SKILLS_HUB_AI_API_KEY": "test-key",
"SKILL_VERSION": "0.2.0",
"SKILL_VERSION": "0.2.1",
"GITHUB_SHA": "test-sha",
"GITHUB_REPOSITORY": "Theorvane/type-mcp-api-agent-skill",
}
Expand Down
60 changes: 60 additions & 0 deletions .agents/task-briefs/67-release-api-to-typemcp-v0-2-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Task brief: 67 — publish api-to-typemcp v0.2.1

**Status:** review
**Issue:** https://github.com/Theorvane/type-mcp-api-agent-skill/issues/67
**Branch:** `chore/67-release-api-to-typemcp-v0-2-1`
**Owner:** Hermes Agent

## Goal

Release the reviewed security-hardened `api-to-typemcp` skill as public version 0.2.1 through the protected `dev` → `main` promotion and the main-push release workflow.

## Source references

- Release contract: `docs/guides/skill-release.md`
- Release checklist: `.agents/checklists/release-readiness.md`
- Security changes: #65
- ClawHub public-confirmation gate: #61

## Scope

### Included

- Bump the frontmatter release version from 0.2.0 to 0.2.1.
- Update release-contract expectations and public README release link.
- Verify the bundled artifact and a generated project before promotion.
- Promote and independently verify the public GitHub, ClawHub, and skills-hub.ai releases.

### Excluded

- New engine behavior or dependency changes beyond the reviewed `dev` content.
- Manual registry mutation or immutable-version retries.

## Safety and contract notes

- Source input: the reviewed `origin/dev` commit `a2225f5c8203c6d468d3419bf99c9a2c7a7d3ade`.
- Secrets: GitHub Actions secrets only; never read, print, or commit credentials.
- Side effects: registry publication only follows a reviewed `dev` → `main` merge and succeeds only for published registry state.
- Compatibility: generated projects retain the public `@theorvane/type-mcp@0.2.0` runtime contract.

## Test-first evidence

| Stage | Command | Expected/observed result |
| --- | --- | --- |
| Red | `python3 .agents/scripts/test_skill_release.py` | Expected to fail after changing the release-contract expectation to 0.2.1 while SKILL.md is 0.2.0. |
| Green | `python3 .agents/scripts/test_skill_release.py` | Passed: 15 tests. |
| Regression | full repository validation and generated-project verification | Passed: 98 engine tests; generated-project `npm ci`, build, Vitest, and audit (0 vulnerabilities). |

## Verification

- [x] Unit/integration tests
- [x] Generator or generated-project E2E test
- [x] Build/package validation
- [x] `git diff --check`
- [x] Documentation updated
- [ ] Independent specification review recorded
- [ ] Independent code-quality review recorded

## Review notes

- Pending exact-head independent review after PR creation.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Tasks 1–7 of embedded-engine delivery are implemented on `dev`: structured Ope

- [ClawHub (`@sjungwon03/api-to-typemcp`)](https://clawhub.ai/sjungwon03/api-to-typemcp)
- [skills-hub.ai (`api-to-typemcp`)](https://skills-hub.ai/skills/api-to-typemcp)
- [GitHub Release v0.2.0](https://github.com/Theorvane/type-mcp-api-agent-skill/releases/tag/v0.2.0)
- [GitHub Release v0.2.1](https://github.com/Theorvane/type-mcp-api-agent-skill/releases/tag/v0.2.1)
Comment thread
sjungwon03 marked this conversation as resolved.

## Layout

Expand Down
2 changes: 1 addition & 1 deletion skills/api-to-typemcp/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: api-to-typemcp
description: Use when turning supplied API sources into a safe TypeMCP project.
version: 0.2.0
version: 0.2.1
Comment thread
sjungwon03 marked this conversation as resolved.
category: integration
license: MIT
metadata:
Expand Down
Loading