Schema validation for notes. An agent skill from agenticnotetaking/arscontexta.

MITAuto-check passedFrontend & Design

Install Validate

skills CLI
$ npx skills add agenticnotetaking/arscontexta --skill validate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install agenticnotetaking/arscontexta validate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill-sources/validate .claude/skills/validate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
validate
GitHub stars
3.5k
Token cost
~3k tokens
SKILL.md length
1,244 words
Files
2
Skills in repo
25
Repo updated
First seen
Licence
MIT

At a glance

Schema validation for notes. An agent skill from agenticnotetaking/arscontexta.

  • Works in 3 steps: Locate Template → Read Target Note → Run Schema Checks
  • /validate [note]
  • SKILL.md covers Runtime Configuration (Step 0…, EXECUTE NOW, Schema Checks and Batch Mode, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Validate is an agent skill from agenticnotetaking/arscontexta. Schema validation for notes. Checks against domain-specific templates. Validates required fields, enum values, description quality, and link health. Non-blocking — warns but doesn't prevent capture. Triggers on "/validate", "/validate [note]", "check schema", "validate note", "validate all".

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.json`).

It sits in Frontend & Design, covering Forms and validation. The repository describes itself as: Claude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as… The licence is MIT.

When your agent uses it

  • /validate [note]
  • Tasks that involve Forms and validation

Example prompts

  • “t prevent capture. Triggers on”
  • “/validate [note]”
  • “check schema”
  • “/validate”

Requirements

  • Pre-approved tools (allowed-tools): Read, Grep, Glob

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Locate Template
  2. Read Target Note
  3. Run Schema Checks

What it can do on your machine

Read from SKILL.md and the folder at commit 2acfd5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Validate loads about 3k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,244 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from agenticnotetaking/arscontexta at commit 2acfd5c, republished under its MIT licence (© agenticnotetaking). 1,244 words, ~2,994 tokens.

Download SKILL.mdSave it as .claude/skills/validate/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
validate
description
Schema validation for notes. Checks against domain-specific templates. Validates required fields, enum values, description quality, and link health. Non-blocking — warns but doesn't prevent capture. Triggers on "/validate", "/validate [note]", "check schema", "validate note", "validate all".
allowed-tools
Read, Grep, Glob
user-invocable
true
context
fork
model
sonnet

Runtime Configuration (Step 0 — before any processing)

Read these files to configure domain-specific behavior:

  1. ops/derivation-manifest.md — vocabulary mapping, platform hints

    • Use vocabulary.notes for the notes folder name
    • Use vocabulary.note / vocabulary.note_plural for note type references
    • Use vocabulary.topic_map for MOC references
    • Use vocabulary.templates for the templates folder path
  2. ops/config.yaml — processing depth

    • processing.depth: deep | standard | quick

If these files don't exist, use universal defaults.

Processing depth adaptation:

DepthValidation Behavior
deepFull schema validation. All checks enabled including composability analysis and cross-reference verification
standardFull validation — all checks enabled
quickBasic schema validation only — required fields, YAML validity, enum values

EXECUTE NOW

Target: $ARGUMENTS

Parse immediately:

  • If target contains a note name: validate that specific note
  • If target contains --handoff: output RALPH HANDOFF block at end
  • If target is "all" or "notes": validate all notes in {DOMAIN:notes}/ directory
  • If target is empty: ask which note to validate

Execute these steps:

Step 1: Locate Template

Determine which template applies to the target note:

  1. Check the note's location — notes in {DOMAIN:notes}/ use the standard note template
  2. Check the type field in frontmatter — specialized types may have dedicated templates
  3. Look for a templates directory (check ops/templates/ or domain-specific path from derivation manifest)
  4. If the template has a _schema block, read it — this is the authoritative schema definition

If no template is found, use the default schema checks below.

Step 2: Read Target Note

Read the target note's full YAML frontmatter. Parse:

  • All YAML fields and their values
  • The body content (for link scanning)
  • The footer section (for Topics and Relevant Notes)
Step 3: Run Schema Checks

Run ALL validation checks. Each check produces PASS, WARN, or FAIL.

START NOW.


Schema Checks

Required Fields (FAIL if missing)
CheckRuleHow to Verify
descriptionMust exist and be non-emptyCheck YAML frontmatter for description: field with non-empty value
TopicsMust link to at least one {DOMAIN:topic map}Check for topics: in YAML or Topics: section in footer. Must contain at least one wiki link

A missing required field is a hard failure. The note cannot pass validation without these.

Description Quality (WARN if weak)
CheckRuleHow to Verify
LengthShould be ~50-200 charactersCount characters in description value
New informationMust add context beyond the titleCompare description text against filename/title — if semantically equivalent, WARN
No trailing periodConvention: descriptions don't end with periodsCheck last character
Single sentenceShould be one coherent statementCheck for sentence-ending punctuation mid-description

How to check "adds new info": Read the title (filename without .md). Read the description. If the description merely restates the title using different words, it fails this check. A good description adds one of:

  • Mechanism — how or why the claim works
  • Scope — what boundaries the claim has
  • Implication — what follows from the claim
  • Context — where the claim applies

Examples:

Bad (restates title):

  • Title: vector proximity measures surface overlap not deep connection
  • Description: "Semantic similarity captures surface-level overlap rather than genuine conceptual relationships"

Good (adds mechanism):

  • Title: vector proximity measures surface overlap not deep connection
  • Description: "Two notes about the same concept with different vocabulary score high, while genuinely related ideas across domains score low"
YAML Validity (FAIL if broken)
CheckRuleHow to Verify
Frontmatter delimitersMust start with --- on line 1 and close with ---Read first line and scan for closing delimiter
Valid YAMLMust parse without errorsCheck for common YAML errors: unquoted colons in values, mismatched quotes, bad indentation
No duplicate keysEach YAML key appears only onceScan for repeated field names
No unknown fieldsFields not in the template schemaCompare against _schema.required and _schema.optional if available — unknown fields get WARN
Domain-Specific Enum Checks (WARN if invalid)

If the note has fields with enumerated values, check them against the template's _schema.enums block:

FieldExpectedSeverity
typeValues from template enum (e.g., claim, methodology, tension, problem, learning)WARN
statusValues from template enum (e.g., preliminary, open, dissolved)WARN
classificationValues from template enum (e.g., open, closed)WARN
Custom domain fieldsValues from template enumWARN

If a field has a value not in the enum list, report the invalid value and list the valid options.

CheckRuleHow to Verify
Body wiki-linksEach [[link]] should point to an existing fileExtract all [[...]] patterns from body, check each against file tree
Topics links{DOMAIN:topic map} referenced in Topics must existVerify each topic wiki link resolves
Relevant notes linksEach note in relevant_notes must existVerify each wiki link in relevant_notes resolves
Backtick exclusionWiki links inside backticks are examples, not real linksSkip [[...]] patterns inside single or triple backtick blocks

How to verify link resolution: For each [[link text]], check if a file named link text.md exists anywhere in the vault. Wiki links resolve by filename, not path.

Show full SKILL.md (448 more words)Show less
Relevant Notes Format (WARN if incorrect)
CheckRuleSeverity
FormatArray with context: ["[[note]] -- relationship"]WARN
Context phrase presentEach entry should include -- or — followed by relationship descriptionWARN
Relationship typeStandard types: extends, foundation, contradicts, enables, exampleINFO
No bare links["[[note]]"] without context is a bare link — useless for navigationWARN
Composability (WARN if fails)
CheckRuleHow to Verify
Title testCan you complete "This note argues that [title]"?Read the title as a sentence fragment — does it make a claim?
SpecificityIs the claim specific enough to disagree with?Could someone reasonably argue the opposite?
Prose fitnessWould since [[title]] read naturally in another note?Check if the title works as an inline wiki link

Topic labels vs claims:

  • "knowledge management" — topic label, not a claim, FAILS composability
  • "knowledge management requires curation not accumulation" — claim, PASSES composability

Batch Mode

When validating all notes (target is "all" or "notes"):

  1. Discover all .md files in {DOMAIN:notes}/ directory
  2. Optionally include additional directories (e.g., self/memory/) if they exist
  3. Run all schema checks on each note
  4. Produce summary report:
    • Total notes checked
    • PASS / WARN / FAIL counts
    • Top issues grouped by check type
    • Notes needing immediate attention (FAIL items)
    • Pattern analysis: are certain check types failing systematically?

Batch output format:

## Validation Summary

Checked: N notes
- PASS: M (X%)
- WARN: K (Y%)
- FAIL: J (Z%)

### FAIL Items (immediate attention)
| Note | Check | Detail |
|------|-------|--------|
| [[note]] | description | Missing |
| [[note]] | topics | No topics footer |

### Top WARN Patterns
- Description restates title: N notes
- Missing context phrases in relevant_notes: N notes
- Enum value not in template: N notes

### Notes Needing Attention
1. [[note]] — 2 FAIL, 1 WARN
2. [[note]] — 1 FAIL, 3 WARN

Output Format (Single Note)

=== VALIDATION: [[note title]] ===

PASS:
- description: present, 147 chars, adds mechanism beyond title
- topics: ["[[topic-name]]"] — exists
- yaml: well-formed, valid delimiters
- composability: title works as prose ("This note argues that [title]")

WARN:
- relevant_notes: bare link without context phrase for [[note-x]]
- type: "observation" not in template enum (valid: claim, methodology, tension, problem, learning)

FAIL:
- (none)

Overall: PASS (2 warnings)
===

If WARN or FAIL items exist, include:

### Suggested Fixes
- **relevant_notes**: Add context phrase — e.g., `["[[note-x]] -- extends this by adding..."]`
- **type**: Change to valid enum value or propose adding "observation" to template

Handoff Mode (--handoff flag)

When invoked with --handoff, output this structured format at the END:

=== RALPH HANDOFF: validate ===
Target: [[note title]]

Work Done:
- Validated against [template name] schema
- Checks run: N
- Status: PASS | WARN | FAIL

Findings:
- PASS: [list]
- WARN: [list or "none"]
- FAIL: [list or "none"]

Files Modified:
- [task file path] (Validate section updated, if applicable)

Learnings:
- [Friction]: [description] | NONE
- [Surprise]: [description] | NONE
- [Methodology]: [description] | NONE
- [Process gap]: [description] | NONE

Queue Updates:
- Mark: validate done for this task
=== END HANDOFF ===

Task File Update

When a task file is in context (pipeline execution), update the ## Validate section:

markdown
## Validate
**Validated:** [UTC timestamp]

Schema check against [template name]:
- description: PASS (147 chars, adds mechanism beyond title)
- topics: PASS (["[[topic-name]]"])
- yaml: PASS (well-formed)
- type: not specified (optional)
- relevant_notes: WARN (bare link for [[note-x]])
- composability: PASS

Overall: PASS (1 warning)

Severity Levels

LevelMeaningAction
PASSMeets requirement fullyNone needed
WARNOptional issue or soft violationConsider fixing, not blocking
FAILRequired field missing or invalid formatMust fix before verification passes
INFOInformational observationNo action needed

FAIL blocks pipeline completion. A note with any FAIL-level issue should NOT be marked done in the queue. It stays at current_phase: "verify" (or "validate" if run standalone) for re-validation after fixes.

WARN does not block. Warnings are quality signals, not gates. A note can proceed through the pipeline with warnings.

Critical Constraints

never:

  • block note creation based on validation failures (validation is a quality check, not a gate)
  • auto-fix issues without reporting them first
  • skip checks because the note "looks fine"
  • report PASS without actually running the check
  • ignore _schema blocks in templates when they exist

always:

  • check ALL schema requirements, not a subset
  • report specific field values in FAIL/WARN messages (not just "description is weak")
  • suggest concrete fixes for every WARN and FAIL
  • use template _schema as the authoritative source when available
  • fall back to default checks gracefully when no template exists
  • log patterns when running batch validation (recurring issues signal systematic problems)

© agenticnotetaking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skill-sources/validate of agenticnotetaking/arscontexta.

  • SKILL.md
  • skill.json

Open the folder on GitHubat commit 2acfd5c

Compare with similar skills

Validate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Validate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Validate this skillagenticnotetaking/arscontexta3.5k—~3kAutomated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Accessibility Fixeribelick/ui-skills9.4k4 repos~1.2kAutomated safety check: PassMIT
Formik Form PatternsChrisWiles/claude-code-showcase6.1k3 repos~2.1kAutomated safety check: PassNone
Buefy Vue UI Componentsbuefy/buefy9.5k—~8.2kAutomated safety check: PassMIT
Formkitformkit/formkit4.8k—~1.7kAutomated safety check: PassMIT

Similar skills

  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Accessibility Fixer

    ibelick/ui-skills

    Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.

    9.4k GitHub starsUsed in 4 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • Formik Form Patterns

    ChrisWiles/claude-code-showcase

    Shows how to build forms with Formik and Yup validation, including conditional rules, field helpers, GraphQL submission, edit forms and multi-step flows.

    6.1k GitHub starsUsed in 3 repos~2.1k tokens
    Frontend & DesignAuto-check passed
  • Rules for writing Vue 3 templates with Buefy components on Bulma CSS: install options, prop conventions, b-field wrapping, tables, theming and dialogs.

    9.5k GitHub stars~8.2k tokensUpdated 29 days ago
    Frontend & DesignAuto-check passed
  • Formkit

    formkit/formkit

    A skill your agent uses when working with FormKit forms, validation, schema, or custom inputs in React, Vue, or Nuxt projects.

    4.8k GitHub stars~1.7k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed
  • HTML Coder

    TokenRhythm/opensquilla

    Guides semantic, accessible HTML work: pages, forms, media and HTML5 APIs, plus how to deliver a runnable webpage project with a preview.

    7.1k GitHub stars~1.4k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed

More from agenticnotetaking/arscontexta

All 25 skills in this repo
  • Graph

    agenticnotetaking/arscontexta

    Interactive knowledge graph analysis. An agent skill from agenticnotetaking/arscontexta.

    3.5k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check: notes
  • Learn

    agenticnotetaking/arscontexta

    Research a topic and grow your knowledge graph. An agent skill from agenticnotetaking/arscontexta.

    3.5k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check: notes
  • Recommend

    agenticnotetaking/arscontexta

    Get research-backed architecture advice for your knowledge system.

    3.5k GitHub starsUsed in 1 repo~5.1k tokens
    Auto-check passed
  • Stats

    agenticnotetaking/arscontexta

    Show vault statistics and knowledge graph metrics. An agent skill from agenticnotetaking/arscontexta.

    3.5k GitHub starsUsed in 1 repo~3.1k tokens
    Auto-check: notes
  • Help

    agenticnotetaking/arscontexta

    Contextual guidance and command discovery. An agent skill from agenticnotetaking/arscontexta.

    3.5k GitHub stars~3.3k tokensUpdated 7 mo ago
    Auto-check: notes
  • Next

    agenticnotetaking/arscontexta

    Surface the most valuable next action by combining task stack, queue state, inbox pressure, health, and goals.

    3.5k GitHub stars~4.9k tokensUpdated 7 mo ago
    Auto-check: notes

Questions about Validate

What does Validate do?

Schema validation for notes. An agent skill from agenticnotetaking/arscontexta. Validate is an agent skill from agenticnotetaking/arscontexta. Schema validation for notes.

When should I use Validate?

Validate fits situations like: /validate [note]; tasks that involve Forms and validation.

How do I install Validate in Claude Code?

Run `npx skills add agenticnotetaking/arscontexta --skill validate -a claude-code`. Or copy the skill folder (skill-sources/validate in agenticnotetaking/arscontexta) into .claude/skills/validate in your project. Claude Code loads it when a task matches its description.

How do I install Validate in Codex?

Run `npx skills add agenticnotetaking/arscontexta --skill validate -a codex`. Or copy the skill folder (skill-sources/validate in agenticnotetaking/arscontexta) into .agents/skills/validate in your project. Codex loads it when a task matches its description.

Can I use Validate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agenticnotetaking/arscontexta --skill validate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validate, .gemini/skills/validate, .github/skills/validate and .opencode/skills/validate in your project.

What does Validate need to run?

SKILL.md names no scripts, command-line tools or credentials: Validate is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Grep, Glob.

Does Validate access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Validate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Validate use?

Validate is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Validate use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Validate?

Skills that share tags, products or a category with Validate: MCP Development (coollabsio/coolify, 63k stars), Accessibility Fixer (ibelick/ui-skills, 9.4k stars), Formik Form Patterns (ChrisWiles/claude-code-showcase, 6.1k stars) and Buefy Vue UI Components (buefy/buefy, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Validate?

agenticnotetaking (a GitHub organization) maintains it in agenticnotetaking/arscontexta, which has 3,492 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on February 24, 2026.

Source: agenticnotetaking/arscontexta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.