fairladyz625/harness-anything/vertical-creator
Claude Code and agent skill by fairladyz625/harness-anything
- community
Checking that the SKILL.md file is still in the repository.
Create, review, or update Harness Anything verticals. Use when designing vertical-definition JSON, declarative completion sources and gates, template catalogs, entity kinds, package scaffolds, projection schemas, and preset layering for a new Harness Anything domain such as coding, QA, docs, design, or operations.
Install
npx vskill@latest install fairladyz625/harness-anything/vertical-creatorSKILL.md
Vertical Creator
Core Rule
Keep verticals declarative. A vertical defines entity shape, template catalogs, scaffolds, defaults, and applicable presets. It must not require CLI core branches for a specific domain.
The CLI may provide only generic vertical infrastructure:
- Schema validation.
- Template catalog loading.
- Template materialization.
- Settings/dev-mode gating.
- Generic preset and profile selection.
Vertical-specific behavior belongs in vertical assets, template catalogs, preset manifests, and declared process scripts. A vertical's completion.sources, completion.gates, and completion.closeoutDefaults describe domain checks; a preset profile selects gate ids. Keep the source and gate declarations in the package that owns their domain meaning, and keep execution inside a declared preset entrypoint.
A vertical asset root must include vertical.json, template-catalog.json, and capabilities.json. The catalogs are required even when a vertical has no templates or command providers; use empty arrays for those catalogs. When a completion command emits completion-witness, declare its provider in capabilities.json with the action kind and exact payload fields, as shown below.
Workflow
- Name the domain and list its entity kinds using the entity declaration tuple.
- Decide which entities are lifecycle package entities and which are schema-only metadata entities.
- Define package scaffolds and repository roots for every lifecycle entity.
- Put template bodies in Markdown assets under
assets/<vertical>/templates/<slot>/<locale>.md. - Register those assets in
template-catalog/v2withbodyPath; do not use inlinebody. - Define required documents as
templateSelectionsthat point at catalog refs. - Define domain completion sources, gates, and closeout defaults in
completion; profiles select gates by id. - Define applicable presets separately as
preset-manifest/v3; put profile-specific gate selection inprofiles[].completionGates. - Run
ha vertical validate --source <vertical-directory> --preset <installed-preset-id>to check the vertical and its completion source catalog. - Add validation tests for schema shape, source/entrypoint references, materialized paths, catalog body paths, and default preset/profile behavior.
- Add integration tests only for real CLI/filesystem behavior. See gate-customization for a complete artifact-only research gate.
Entity Declaration Tuple
Declare each entity with the v2 five-part contract:
identityTypepackageKindfor lifecycle entities orschemaReffor schema entitiescontractEntity- matching scaffold/root membership where required
Lifecycle entities must have both a packageScaffolds entry and a repositoryScaffold.entityRoots entry. Schema entities must not have package scaffolds or repository roots.
Vertical Definition Pattern
A vertical package contains vertical.json and its catalog/assets. Validate the package directory with ha vertical validate --source <package-directory>; this fragment illustrates the declaration shape.
The same package root also needs both runtime catalogs. For an artifact-only command gate, the provider declaration is:
template-catalog.json uses template-catalog/v2, a package record, and a documents array. A vertical with no templates may use "documents": []; otherwise register each Markdown body under its bodyPath as shown in the Template Catalog v2 example. Do not omit either catalog file: runtime loading requires both before it can validate the vertical and its completion sources.
Validate it:
Template Catalog v2
A vertical package should keep bodies as Markdown assets and register them by bodyPath:
Catalog root:
templates/task.plan/en-US.md must contain all required anchors:
Preset overlays should reference the same catalog documents from preset-manifest/v3 profiles:
Design Rules
- Use templates for document structure, not ad hoc file writes.
- Use presets for optional process or content overlays.
- Use
preset-manifest/v3for all new preset examples. - Use
template-catalog/v2withbodyPath; never teach inline templatebody. - Keep domain source and gate IDs in the declarative
completionobject; do not add a vertical-id branch to the CLI. - For command-backed completion, point a source at an installed preset entrypoint that produces
completion-witness; the declaration alone does not grant runtime permissions. - Use
resultSchema.requiredfor required predicate fields andgates.<id>.bindingswhen a predicate value must equal a JSON Pointer value in a frozen submitted artifact. completion.closeoutDefaultsmay setreview,consent, andfactDisposition; repository and task-profile choices take precedence over domain defaults.- Keep template
requiredAnchorsin the template catalog. They validate document structure and are separate from completion predicate schema requirements. - Keep project/user overrides additive and fail closed on invalid active overrides.
- Do not promise unattended conversion when the system supports Legacy Intake plus explicit rebuild only.
- Keep private harness operating state out of public docs unless explicitly designing public product documentation.
Review Checklist
ha vertical validate --source <package-directory>passes.- Entity kinds declare
entityTypeand exactly one ofpackageKindorschemaRef. - Every lifecycle entity has a package scaffold and repository root.
- Schema entities do not declare package scaffolds or repository roots.
- Template refs exist in
template-catalog/v2and use asset-backedbodyPath. - Required anchors match locale anchors and appear in each body asset.
- Presets shipped with the vertical use
preset-manifest/v3,profiles, and
defaultProfile; every v3 profile explicitly declares completionGates, even when empty (ADR-0027 D7).
- Preset manifests pass
ha preset validate --source <package-directory>. - The vertical works without CLI branches keyed by vertical id.
- Template refs exist in the catalog and materialize to stable paths.
- Default preset/profile behavior is explicit.
- Every
completion.gates.<id>.sourceresolves to one declared source, and every command source resolves to an installed preset entrypoint. - Predicate JSON Schemas and artifact bindings express only domain checks; authorization and runner authority remain outside the vertical package.
- The completion example's profile selects the declared gate id; it does not duplicate source or gate declarations.
- Custom verticals remain gated by user dev mode and project settings.
- Tests are placed in the proper tier manifest when new test files are added.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/vertical-creator/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/fairladyz625/harness-anything/vertical-creator)