Refactor pytest-to-tryke migration prompt into a skill#117
Conversation
The phased migration prompt that lived inline in docs/migration.md is now a Claude Code Skill at .claude/skills/pytest-to-tryke-migration/, authored in /goal shape (outcome, verification surface, constraints, boundaries, iteration policy, blocked stop condition) so the same file works for skill auto-activation and Codex /goal. docs/migration.md keeps the cheat sheet and gains a short pointer + strong-vs-weak goal example; the new docs/skills/ page has install instructions and the copyable goal template. zensical.toml exposes the page in nav.
There was a problem hiding this comment.
Pull request overview
This PR moves the pytest→Tryke migration guidance from an inline prompt in docs/migration.md into a reusable Claude Code Skill (.claude/skills/.../SKILL.md), and adds a dedicated documentation page for installing/using that skill. It also updates site navigation to expose the new docs page.
Changes:
- Added a Claude Code Skill file for a phased, gated pytest→Tryke migration (
.claude/skills/pytest-to-tryke-migration/SKILL.md). - Added a docs page describing how to install/invoke the migration skill (including a copyable
/goaltemplate). - Updated
docs/migration.mdto point readers to the skill instead of embedding the full prompt, and updated docs navigation.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
zensical.toml |
Adds the new skill doc page to the documentation nav. |
docs/skills/pytest-to-tryke-migration.md |
New documentation page for the migration skill, including install/invocation and a /goal template. |
docs/migration.md |
Removes the long embedded prompt and replaces it with a pointer + short explanation and goal-strength guidance. |
.claude/skills/pytest-to-tryke-migration/SKILL.md |
Introduces the canonical Skill content with phases, gates, and a /goal-shaped contract. |
Comments suppressed due to low confidence (2)
docs/skills/pytest-to-tryke-migration.md:92
- This summary says the verification surface is "(Gates 0–5)", but the gates in the skill are numbered 0, 1, 3, 4, 5. Consider updating this to reflect the actual gate numbers (or renumber/define Gate 2) to avoid confusion when someone uses this as a checklist.
1. **When to use this skill** — activation triggers.
2. **Goal contract** — outcome, verification surface (Gates 0–5),
constraints, boundaries, iteration policy, blocked stop condition.
3. **Working across sessions** — the three `.migration/` files
docs/skills/pytest-to-tryke-migration.md:99
- The section list claims "Phases -1 → 5" and that "Each phase names its gate", but Phase -1 and Phase 2 in the SKILL.md are not gates (gates are 0,1,3,4,5). Please rephrase to avoid stating that every phase has an associated gate.
why local-only work is invisible to the next session.
5. **Phases -1 → 5** — the executable plan. Each phase names its
gate.
6. **Reporting back** — what to summarize after each gate.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| .claude/skills/pytest-to-tryke-migration/SKILL.md. Done when Gates 0 | ||
| through 5 all pass: pytest baseline captured cleanly, tryke |
| /goal Migrate this repository from pytest to Tryke under the | ||
| pytest-to-tryke-migration skill at | ||
| .claude/skills/pytest-to-tryke-migration/SKILL.md. Done when Gates 0 | ||
| through 5 all pass: pytest baseline captured cleanly, tryke | ||
| configured, discovery parity matches, per-test results parity | ||
| matches the captured pytest JUnit XML, and pytest is removed from | ||
| dev dependencies with CI green on tryke. Work one package at a | ||
| time; commit and push after every file; maintain .migration/NOTES.md, |
The skill is now the unit of work — convert one test file (or a small package), verify its discovery and outcomes match what pytest produced for that file. Repo-level concerns (baseline capture, iteration across files, whole-suite parity, pytest removal) move into the /goal template on the skill's docs page. Drops the .migration/ session-continuation machinery and the five-phase framing; the goal owns continuity now.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b39f315b73
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ``` | ||
|
|
||
| ## Migration prompt | ||
| ## Migration skill |
There was a problem hiding this comment.
Preserve
migration-prompt anchor for existing links
Renaming the section to ## Migration skill removes the #migration-prompt fragment that other docs still reference (docs/index.md links to https://tryke.dev/migration.html#migration-prompt and docs/why.md links to migration.md#migration-prompt), so those navigation paths now drop users at a missing anchor instead of the migration guidance. Please keep a compatibility anchor (or update all inbound links in the same change) to avoid broken documentation links.
Useful? React with 👍 / 👎.
The phased migration prompt that lived inline in docs/migration.md is
now a Claude Code Skill at .claude/skills/pytest-to-tryke-migration/,
authored in /goal shape (outcome, verification surface, constraints,
boundaries, iteration policy, blocked stop condition) so the same file
works for skill auto-activation and Codex /goal. docs/migration.md
keeps the cheat sheet and gains a short pointer + strong-vs-weak goal
example; the new docs/skills/ page has install instructions and the
copyable goal template. zensical.toml exposes the page in nav.