
What Is Viserys?
Viserys is a self-contained collection of engineering workflows for AI coding agents. Instead of allowing an agent to invent a process for every request, it supplies reusable Markdown instructions, reviewer personas, shared references, lifecycle commands, evaluation fixtures, and validation scripts.
The project organizes software work into a six-stage lifecycle:
DEFINE -> PLAN -> BUILD -> VERIFY -> REVIEW -> SHIPEach workflow lives in a SKILL.md file and includes procedural steps, exit criteria, and anti-rationalization guidance. Because the skills are plain Markdown, they can be loaded by skill-aware coding agents or read directly as standalone instructions.
Key Features
- Lifecycle coverage: Workflows cover requirements, planning, implementation, testing, review, and release preparation.
- 26 packaged skills: The
skills/directory contains reusable engineering workflows. - Reviewer personas: Specialized agents evaluate code quality, testing, security, and web performance.
- OpenCode integration: A primary-mode Viserys agent is included and loads the skills without global configuration.
- Shared references: Checklists can be loaded when needed rather than placed permanently in the agent context.
- Validation and evaluation: Node.js scripts check skills, commands, artifact paths, reference links, versions, and evaluation cases.
Understand the Repository Structure
skills/contains the skill workflows.agents/contains four specialist reviewer personas.references/provides shared, on-demand checklists.commands/defines lifecycle commands.evals/contains skill evaluation cases and fixtures.scripts/contains validators and the evaluation runner.hooks/provides session lifecycle hooks.docs/contains internal documentation..opencode/agent/viserys.mddefines the OpenCode agent..opencode/opencode.jsonregisters the skill paths for OpenCode.
Installation and Setup
Option 1: Activate Viserys in OpenCode
- Clone the Viserys repository with Git.
- Open the cloned repository folder in OpenCode.
- Press
Tabto open the agent selector. - Select
viserys.
The included Viserys agent runs in primary mode, so it appears in OpenCode's agent list. Its prompt checks for an applicable skill before processing a request and routes work through the project lifecycle. The repository-level OpenCode configuration registers all packaged skills, so no global configuration is required.
Option 2: Use Viserys with Another Skill-Aware Agent
For Claude Code, Cursor, or another agent that supports reusable skills, point the agent at the repository's skills/ directory. Alternatively, copy that directory into the tool's native skills location.
The exact destination depends on the coding agent. Viserys does not require its Markdown workflows to be converted into another format, but the host tool must know where to discover them.
Option 3: Use the Skills as Plain Context
If an agent has no native skill system, open the relevant SKILL.md file and provide its contents as context. Every skill is designed to stand alone, so you can follow its steps manually or instruct an agent to follow them.
Choose the Right Workflow
Start with the meta skill using-agent-skills when you are unsure which workflow applies. Otherwise, select a skill according to the current lifecycle stage.
DEFINE: Clarify the Work
- Use
idea-refinewhen a concept is vague and needs structured exploration. - Use
interview-mewhen requirements must be collected one question at a time. - Use
spec-driven-developmentbefore starting a project, feature, or significant change without a specification. - Use
constraint-driven-developmentwhen no quality bar exists or checks are being suppressed merely to make the build pass.
PLAN: Turn a Specification into Tasks
After requirements are stable, use planning-and-task-breakdown. It converts a specification into ordered, verifiable tasks with acceptance criteria.
BUILD: Implement Deliberately
incremental-implementationhelps changes spanning multiple files land in thin slices.test-driven-developmentapplies when implementing logic, correcting a bug, or changing behavior.context-engineeringhelps initialize a session, switch tasks, or recover when output quality declines.source-driven-developmentis appropriate when correctness depends on current official documentation.doubt-driven-developmentencourages verification when the stakes are high and checking now is cheaper than debugging later.frontend-ui-engineeringguides user-facing interface work.api-and-interface-designsupports API, module boundary, and public interface design.
VERIFY: Prove the Change Works
- Use
browser-testing-with-devtoolsfor browser-based implementation or debugging. - Use
debugging-and-error-recoverywhen a test fails, a build breaks, or runtime behavior is unexpected.
REVIEW: Evaluate Quality and Risk
code-review-and-qualityshould be used before merging a change.code-simplificationis useful when working code remains difficult to understand or maintain.security-and-hardeningapplies to user input, authentication, data storage, and external integrations.performance-optimizationapplies when performance requirements exist or a regression is suspected.
SHIP: Prepare for Production
git-workflow-and-versioningguides code changes and version control.ci-cd-and-automationsupports build and deployment pipeline changes.deprecation-and-migrationhelps remove old systems or migrate users.documentation-and-adrsrecords architectural decisions and public API changes.observability-and-instrumentationcovers logs, metrics, traces, and alerts.shipping-and-launchguides final production deployment preparation.
Basic Usage Example
Suppose you ask an AI coding agent to add a new authenticated API endpoint. Rather than jumping directly into implementation, apply the lifecycle in sequence.
- Define: Run
interview-meif authentication rules, inputs, or responses are unclear. Then usespec-driven-developmentto establish the expected behavior. - Plan: Apply
planning-and-task-breakdownto produce ordered tasks and acceptance criteria. - Build: Use
api-and-interface-designfor the endpoint contract andtest-driven-developmentfor the behavior. If several files must change, also useincremental-implementation. - Verify: If tests fail or the endpoint behaves unexpectedly, follow
debugging-and-error-recovery. - Review: Apply
code-review-and-qualityandsecurity-and-hardeningbecause the feature handles authentication and input. - Ship: Use the appropriate Git, documentation, observability, and launch workflows before production deployment.
With the OpenCode integration enabled, the Viserys agent is designed to check for matching skills first. In a plain-context setup, you perform this selection yourself and ask the agent to follow each chosen Markdown workflow.
Use the Reviewer Personas
Viserys includes four reviewer personas in agents/. They provide focused perspectives that complement the lifecycle skills.
agents/code-reviewer.mdperforms a five-axis review using a staff-engineer approval standard.agents/test-engineer.mdexamines test strategy and coverage using the prove-it pattern.agents/security-auditor.mdcovers vulnerability detection, threat modeling, and OWASP assessment.agents/web-performance-auditor.mdaudits Core Web Vitals in quick or deep modes.
Choose a persona based on the risks of the change. For example, pair the security auditor with security-and-hardening for authentication work, or use the web performance auditor after modifying a user-facing interface.
Validate the Workflow Pack
Run the supplied Node.js scripts after changing skills, commands, references, versions, or evaluation fixtures:
node scripts/validate-skills.js
node scripts/validate-commands.js
node scripts/validate-artifact-paths.js
node scripts/validate-reference-links.js
node scripts/validate-versions.js
node scripts/run-evals.jsThese commands validate the pack's internal structure and run its evaluation suite. They are especially important when extending Viserys rather than merely consuming its existing workflows.
Advanced Tips
Combine Skills Without Skipping Lifecycle Gates
A task may require more than one skill. A browser feature, for example, can combine frontend-ui-engineering, test-driven-development, and browser-testing-with-devtools. Keep each skill's exit criteria visible so that adding workflows does not turn into unstructured prompting.
Load References Only When Needed
The references/ directory is intended for shared checklists loaded on demand. This helps keep an agent's active context focused while preserving access to detailed guidance.
Use Official Sources for Version-Sensitive Work
Apply source-driven-development when implementation details depend on current documentation. Pair it with doubt-driven-development when a plausible but incorrect assumption would be costly.
Recover When Agent Quality Declines
If a long session becomes inconsistent, use context-engineering. It is specifically intended for session setup, task switching, and situations where output quality has dropped.
Consult the Included Documentation
docs/README.mdexplains the pack and lifecycle map.docs/skill-anatomy.mddefines theSKILL.mdformat.evals/README.mdexplains how skill evaluation works.
Read the skill anatomy specification before adding or restructuring workflows, then run the validators and evaluations to check the result.
Conclusion
Viserys turns AI-assisted development into a repeatable engineering process. Start by connecting the skills/ directory to a compatible agent or selecting the bundled Viserys agent in OpenCode. Then move deliberately through DEFINE, PLAN, BUILD, VERIFY, REVIEW, and SHIP, using specialist personas and validation scripts where they add value.
