Install
$ agentstack add skill-michelkerkmeester-opencode-skilled-agent-loops-with-spec-kit-memory-sk-doc ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Documentation Creation Specialist - Unified Markdown & Component Management
Unified specialist providing: (1) Document quality pipeline with structure enforcement and content optimization, (2) OpenCode component creation (skills, agents, commands) with scaffolding, validation and packaging, (3) ASCII flowchart creation for visualizing workflows, (4) Install guide creation for setup documentation and (5) Feature catalog and manual testing playbook creation for inventory and validation packages.
Core Principle: Structure first, then content, then quality.
Architecture: Scripts handle deterministic parsing/metrics. AI handles quality judgment and recommendations.
1. WHEN TO USE
Use Case: Document Quality Management
Enforce markdown structure, optimize content for AI assistants, validate quality through script-assisted AI analysis.
README Creation - Use readme_template.md + readme_creation.md when:
- Creating new README for any folder or project
- User requests "create a README", "add documentation", "write a README"
- Folder needs comprehensive documentation
- Workflow: [readmecreation.md](./references/readmecreation.md) | Template: [readmetemplate.md](./assets/readme/readmetemplate.md)
Skill README Creation - Use skill_readme_template.md when:
- Creating or refreshing
.opencode/skills/[skill-name]/README.md - A skill README needs human-facing purpose, quick start, structure, examples, troubleshooting, FAQ or related-resource navigation
- Template: [skillreadmetemplate.md](./assets/skill/skillreadmetemplate.md)
Frontmatter Validation - Use frontmatter_templates.md when:
- Validating YAML frontmatter in any document
- Checking required fields for document types
- Fixing frontmatter syntax errors
Changelog & Release Notes - Use changelog_template.md when:
- Authoring a global component changelog at
.opencode/changelog/{NN--component}/v{VERSION}.md - Composing GitHub release notes that mirror the changelog body
- Choosing between compact (under 10 changes) and expanded (10+ changes or major) formats
- Template: [changelogtemplate.md](./assets/changelogtemplate.md). Used by
/create:changelog(auto + confirm). Nested packet-local changelogs use the spec-kit templates at.opencode/skills/system-spec-kit/templates/changelog/instead.
Validation Workflow - Apply after Write/Edit operations:
- Auto-correct filename violations (ALL CAPS to lowercase, hyphens to underscores)
- Fix safe violations (separators, H2 case)
- Check critical violations (missing frontmatter, wrong section order)
Manual Optimization - Run when:
- README needs optimization for AI assistants
- Creating critical documentation (specs, knowledge, skills)
- Pre-release quality checks
- Generating llms.txt for LLM navigation
Use Case: OpenCode Component Creation
Create and manage OpenCode components (skills, agents, commands). Each component type has templates and validation with quality standards.
Component Types:
- Skills (.opencode/skills/) - Knowledge bundles with workflows → [skillcreation.md](./references/skillcreation.md)
- Agents (.opencode/agents/) - AI personas with tool permissions → [agentcreation.md](./references/agentcreation.md)
- Commands (.opencode/commands/) - Slash commands for user invocation → [commandtemplate.md](./assets/command/commandtemplate.md)
For larger skills, split deep content into focused reference files and keep concise navigation in SKILL.md or README.md. When a skill has both cross-cutting standards and document-family guides, prefer references/global/ for shared rules and the references/ root for creation-specific workflows.
Start with: [skillcreation.md](./references/skillcreation.md), then [overview.md](./references/skill_creation/overview.md) for skill structure Primary templates:
- [skillmdtemplate.md](./assets/skill/skillmdtemplate.md)
- [skillreadmetemplate.md](./assets/skill/skillreadmetemplate.md)
- [skillreferencetemplate.md](./assets/skill/skillreferencetemplate.md)
- [skillassettemplate.md](./assets/skill/skillassettemplate.md)
Use when:
- User requests skill creation ("create a skill", "make a new skill")
- User requests agent creation ("create an agent", "make a new agent")
- User requests command creation ("create a command", "add a slash command")
- Scaffolding component structure
- Validating component quality
- Packaging skill for distribution
Skill Process (6 steps): Understanding (examples) → Planning (resources) → Initialization (init_skill.py) → Editing (populate) → Packaging (package_skill.py) → Iteration (test/improve)
Agent Process: Load agent_creation.md and agent_template.md → Define frontmatter (mode, permissions) → Create sections (workflow, capabilities, anti-patterns) → Validate → Test
Command Process: Load command_template.md → Define frontmatter (name, description) → Create execution logic → Add to command registry → Test
Use Case: Flowchart Creation
Create ASCII flowcharts for visualizing workflows, user journeys and decision trees.
For styled HTML visuals (interactive diagrams, dashboard pages, or polished data-table renders), use a dedicated HTML workflow instead of forcing ASCII or markdown flowcharts.
Use when:
- Documenting multi-step processes with branching
- Creating decision trees with multiple outcomes
- Showing parallel execution with sync points
- Visualizing approval gates and revision cycles
See: [assets/flowcharts/](./assets/flowcharts/)
Use Case: Install Guide Creation
Create and validate installation documentation for MCP servers, plugins and tools using phase-based templates.
Use when:
- Creating documentation for MCP server installation
- Documenting plugin setup procedures
- Standardizing tool installation across platforms
- Need phase-based validation checkpoints
5-Phase Process: Overview → Prerequisites → Installation → Configuration → Verification
See: [installguidecreation.md](./references/installguidecreation.md)
Use Case: Manual Testing Playbook Creation
Create manual testing playbooks with deterministic scenarios, structured evidence collection, and multi-agent execution planning.
Manual Testing Playbook - Use testing_playbook/manual_testing_playbook_template.md when:
- Creating manual testing scenarios for a skill
- Standardizing test evidence and verdict criteria
- Setting up multi-agent test execution planning
Canonical Package: Root manual_testing_playbook.md plus numbered category folders with one per-feature file per feature ID.
See:
- [manualtestingplaybookcreation.md](./references/manualtestingplaybookcreation.md)
- [manualtestingplaybooktemplate.md](./assets/testingplaybook/manualtestingplaybook_template.md)
Use Case: Feature Catalog Creation
Create feature catalogs with a rooted feature inventory, numbered category sections, and per-feature reference files.
Feature Catalog - Use assets/feature_catalog/feature_catalog_template.md when:
- Creating a canonical current-state feature inventory for a skill or system
- Linking manual playbooks back to a stable feature reference
- Documenting current behavior with source-file anchors and stable slugs
Canonical Package: Root FEATURE_CATALOG.md plus numbered category folders with one per-feature file per catalog entry.
See:
- [featurecatalogcreation.md](./references/featurecatalogcreation.md)
- [featurecatalogtemplate.md](./assets/featurecatalog/featurecatalog_template.md)
Use Case: Benchmark Folder Creation
Create skill-local mcp_server/benchmarks/benchmark-/ folders that promote curated bake-off results from an originating spec packet into the consuming skill, where operators reading the MCP code can find the headline without leaving the skill tree.
Benchmark Creation - Use benchmark_report_template.md plus source_template.md when:
- An ADR or spec packet has just promoted a non-trivial default change (embedder swap, reranker change, retrieval policy) backed by measured evidence
- The originating spec packet has a stable headline plus replay commands and is worth surfacing inside the consuming skill
- A sibling skill already ships a
mcp_server/benchmarks/folder and parity matters for operators moving between skills
Canonical Package: One benchmark-/ folder per run, holding benchmark_report.md (ten-section curated narrative), SOURCE.md (wayfinding pointer back to the spec packet), results.csv, *.jsonl per-probe data, and optional sidecars (runtime-measurements.md, risk-analysis-*.md).
See:
- [benchmarkcreation.md](./references/benchmarkcreation.md)
- [benchmarkreporttemplate.md](./assets/benchmark/benchmarkreporttemplate.md)
- [sourcetemplate.md](./assets/benchmark/sourcetemplate.md)
When NOT to Use (All Modes)
- Non-markdown files (only
.mdsupported) - Simple typo fixes (use Edit tool directly)
- Internal notes or drafts
- Auto-generated API docs
- Short 2-3 step processes (use bullet points)
2. SMART ROUTING
> Pattern: see [sk-doc smart-router resilience template](./assets/skill/skillsmartrouter.md).
Resource Domains
The router discovers markdown resources recursively from references/ and assets/ and then applies intent scoring from RESOURCE_MAP. Keep this section domain-focused rather than static file inventories.
references/global/for documentation standards, validation rules, optimization guidance, voice rules, and shared execution workflows.references/root for document-family and component creation guides such as skill creation, agent creation, install guides, feature catalogs, and manual testing playbooks.assets/readme/for README and install-guide scaffolds;assets/changelog_template.md,assets/frontmatter_templates.md, andassets/llmstxt_templates.mdat the assets/ root for cross-cutting templates.assets/skill/for skill creation templates, includingSKILL.md, skill README, reference and asset scaffolds;assets/agent_template.mdat the assets/ root andassets/command/command_template.md(withassets/command/command_presentation_template.md) for agent and command creation templates.assets/feature_catalog/andassets/testing_playbook/at the assets/ root for feature catalog and manual testing playbook package templates.assets/benchmark/for skill-local benchmark folder templates (benchmark_report_template.md,source_template.md).assets/flowcharts/for reusable ASCII flowchart patterns and diagram examples.
> Cross-CLI consumption note (per packets 071/072 stress-test data): when sk-doc is dispatched via an external CLI and the caller consumes the routing-trace output LITERALLY (e.g. attempts to Read() cited resource paths), prefer cli-codex (gpt-5.5/high/fast) — it scored 66.7% resource-accuracy vs cli-opencode 47.2% on the sk-doc router stress matrix. claude-opus-4.7 tends to hallucinate plausible-sounding paths that don't exist in this skill's filesystem; treat its routing trace as advisory and verify cited paths before reading. See the local router stress-test notes for the full data and hallucination finding.
Resource Loading Levels
| Level | When to Load | Resources | | ----------- | ------------------------ | --------------------------- | | ALWAYS | Every skill invocation | Quick reference baseline | | CONDITIONAL | If intent signals match | Mode-specific docs/templates| | ON_DEMAND | Only on explicit request | Extended standards/template |
Smart Router Pseudocode
The authoritative routing logic for scoped loading, weighted intent scoring, and ambiguity handling.
- Pattern 1: Runtime Discovery -
discover_markdown_resources()recursively scansreferences/andassets/. - Pattern 2: Existence-Check Before Load -
load_if_available()guards, checksinventory, and suppresses repeats withseen. - Pattern 3: Extensible Routing Key - intent labels route to document families without static inventories.
- Pattern 4: Multi-Tier Graceful Fallback -
UNKNOWN_FALLBACKrequests disambiguation and missing families return a "no knowledge base" notice.
from pathlib import Path
SKILL_ROOT = Path(__file__).resolve().parent
RESOURCE_BASES = (SKILL_ROOT / "references", SKILL_ROOT / "assets")
DEFAULT_RESOURCE = "references/global/quick_reference.md"
INTENT_SIGNALS = {
"DOC_QUALITY": {"weight": 4, "keywords": ["dqi", "quality", "validate", "extract_structure"]},
"OPTIMIZATION": {"weight": 3, "keywords": ["optimize", "llms.txt", "ai context"]},
"SKILL_CREATION": {"weight": 4, "keywords": ["skill creation", "new skill", "init_skill", "package_skill"]},
"AGENT_COMMAND": {"weight": 4, "keywords": ["create agent", "create command", "agent template", "command template"]},
"FLOWCHART": {"weight": 3, "keywords": ["flowchart", "ascii diagram", "decision tree", "swimlane"]},
"INSTALL_GUIDE": {"weight": 3, "keywords": ["install guide", "setup instructions", "prerequisite"]},
"HVR": {"weight": 4, "keywords": ["human voice", "hvr", "voice rules", "banned words", "writing style"]},
"PLAYBOOK": {"weight": 4, "keywords": ["playbook", "manual testing", "test scenarios", "manual test", "testing playbook"]},
"FEATURE_CATALOG": {"weight": 4, "keywords": ["feature catalog", "feature inventory", "catalog snippet"]},
"README_CREATION": {"weight": 3, "keywords": ["create readme", "readme creation", "write readme", "add documentation", "folder readme"]},
"CHANGELOG": {"weight": 4, "keywords": ["changelog", "release notes", "changelog template", "release template", "create changelog", "github release"]},
"BENCHMARK": {"weight": 4, "keywords": ["benchmark", "benchmark creation", "benchmark report", "mcp_server benchmarks", "benchmark_report.md", "skill-local benchmark", "benchmark folder", "source.md template"]},
}
RESOURCE_MAP = {
"DOC_QUALITY": ["references/global/validation.md", "references/global/workflows.md", "references/global/core_standards.md", "references/global/evergreen_packet_id_rule.md"],
"OPTIMIZATION": ["references/global/optimization.md", "assets/llmstxt_templates.md"],
"SKILL_CREATION": ["references/skill_creation.md", "assets/skill/skill_md_template.md", "assets/skill/skill_readme_template.md", "assets/skill/skill_reference_template.md"],
"AGENT_COMMAND": ["references/agent_creation.md", "assets/agent_template.md", "assets/command/command_template.md"],
"FLOWCHART": ["assets/flowcharts/simple_workflow.md", "assets/flowcharts/decision_tree_flow.md"],
"INSTALL_GUIDE": ["assets/readme/install_guide_template.md", "references/install_guide_creation.md"],
"HVR": ["references/global/hvr_rules.md"],
"PLAYBOOK": ["references/manual_testing_playbook_creation.md", "assets/testing_playbook/manual_testing_playbook_template.md"],
"FEATURE_CATALOG": ["references/feature_catalog_creation.md", "assets/feature_catalog/feature_catalog_template.md"],
"README_CREATION": ["references/readme_creation.md", "assets/readme/readme_template.md"],
"CHANGELOG": ["assets/changelog_template.md"],
"BENCHMARK": ["references/benchmark_creation.md", "assets/benchmark/benchmark_report_template.md", "assets/benchmark/source_template.md"],
}
LOADING_LEVELS = {
"ALWAYS": [DEFAULT_RESOURCE],
"ON_DEMAND_KEYWORDS": ["full standards", "all templates", "deep dive", "readme", "documentation", "manual testing playbook", "feature catalog", "release notes", "corpus/readme", "corpus documentation"],
"ON_DEMAND": ["assets/frontmatter_templates.md"],
}
UNKNOWN_FALLBACK_CHECKLIST = [
"Confirm whether this is document quality, component creation, flowchart, install guide, playbook, or catalog work",
"Confirm the expected output file or component type",
"Provide one example input or target document",
"Confirm whether full templat
…
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [MichelKerkmeester](https://github.com/MichelKerkmeester)
- **Source:** [MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory](https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.