Skip to content

vt-v-intake

VMS intake pipeline for governance ideas. Captures, evaluates, proposes, triages, and routes improvement proposals through a 5-stage pipeline with folder-based lifecycle tracking.

Plugin: vms
Category: Other
Command: /vt-v-intake


VMS Intake Pipeline

This skill manages the intake of governance ideas — from informal observations to tracked, prioritized work items. It bridges the gap between "someone noticed something" and "it's in the backlog with an owner."

Pipeline Overview

CAPTURE → EVALUATE → PROPOSE → APPROVE → EXECUTE
(seed)    (evaluate)  (propose)  (triage)   (CWP/direct)

Files move between subfolders as they progress:

Folder Status Stage
eingang/ offen Captured, awaiting evaluation
bewertung/ bewertet Evaluated, awaiting proposal/approval
aktiv/ genehmigt, in_bearbeitung Approved, being executed
archiv/ erledigt, abgelehnt Completed or rejected

Commands

scan (default)

Scan vault/aufgaben/ recursively for pipeline items and report status grouped by folder.

/vt-v-intake scan
/vt-v-intake         # same as scan

Process: 1. Run intake_scanner.py against the vault aufgaben directory 2. Scan all subfolders recursively (eingang/, bewertung/, aktiv/, archiv/, root) 3. Report: items by category, items by folder, consistency warnings 4. Flag any folder-status mismatches (e.g. file in bewertung/ with status: offen)

Output includes: - Summary table (untriaged, evaluated, approved, in_progress, completed counts) - Pipeline by Folder section (which items are where) - Consistency warnings (folder-status mismatches) - Untriaged items detail table

evaluate <file> or evaluate --all

Run automated evaluation checks against vorschlag files in eingang/.

/vt-v-intake evaluate vorschlag-2026-03-07-001.md
/vt-v-intake evaluate --all    # evaluate all files in eingang/

Process: 1. Run evaluate_vorschlag.py against the specified file(s) 2. Execute 5 automated checks: - YAML completeness — required aufgabe + vorschlag fields present - Norm reference validation — extract and validate norm refs from body text - Duplicate detection — search vault for overlapping content - Scope estimation — count files in target vault area - Dependency mapping — find files referencing the same norms 3. Display evaluation results (markdown with summary table + detail sections) 4. Update the vorschlag file: - Append ## Bewertung section with evaluation results to file body - Set status: bewertet in YAML frontmatter 5. Move file: git mv vault/aufgaben/eingang/<file> vault/aufgaben/bewertung/

propose <file>

Interactive enrichment of an evaluated file in bewertung/.

/vt-v-intake propose vorschlag-2026-03-07-001.md

Process: 1. Read the evaluated file from bewertung/ 2. Display existing evaluation results 3. Use AskUserQuestion to gather proposal details: - Zweck — What problem does this solve? - Zielort — Where in the vault should this content go? - Scope — klein (1-5 files), mittel (6-20), gross (20+) - Reviewer — Auto-suggest based on management_system: - ISMS → ISB, DSMS → DSB, QMS → GF, IMS → ISB - Cross-domain → ISB + affected domain owner - Akzeptanzkriterien — What defines "done"? - Umsetzung — direct | aufgabe | cwp - Auto-suggest cwp when scope: gross and estimated_files > 20 4. Update YAML frontmatter with all proposal fields 5. Format body with proposal-template.md structure

triage

Interactive approval session for proposals in bewertung/ with status bewertet.

/vt-v-intake triage

Process: 1. Run intake_scanner.py to find items in bewertung/ with status: bewertet 2. For each item, present: - Title, description, and source - Bewertung section (evaluation results) - Proposal details (if propose was run) - Suggested priority based on source and content 3. Ask user for decision using AskUserQuestion: - Approve — Set status: genehmigt, zustaendig, frist; git mv to aktiv/ - Reject — Set status: abgelehnt, add reason; git mv to archiv/ - Defer — Set future frist, keep in bewertung/ - Revise — Add feedback notes, keep in bewertung/ 4. After each decision, update the aufgabe file YAML frontmatter 5. At end, print summary of decisions made

Triage decision matrix (from references/classification-guide.md):

Scope Mechanism Action
Single file fix Aufgabe Set owner + deadline directly
2-5 files Aufgabe + checklist Set owner, add Umsetzungsschritte
5-20 files GitHub Issue + aufgabe Create issue, label appropriately
20+ files / new domain CWP Create entry in .content-state.yaml

seed <description>

Bulk-create vorschlag aufgaben from a list of items.

/vt-v-intake seed "Gap analysis findings from Phase 1"

Process: 1. Accept a description or structured list of items 2. For each item, create a new aufgabe file in vault/aufgaben/eingang/: - Filename: vorschlag-YYYY-MM-DD-NNN.md (date + sequence) - YAML frontmatter per intake-schema.md reference - Body with description and context 3. Set kategorie: vorschlag, status: offen, quelle based on context 4. Report created files

capture

Guided interactive capture of a single governance idea. Asks clarifying questions and creates a well-structured vorschlag file in eingang/.

/vt-v-intake capture
/vt-v-intake capture "We need a remote work policy"

Process:

  1. Gather the idea. Accept the user's description — can be a rough sentence, a topic name, or a detailed paragraph. If provided as argument, use that. Otherwise ask: "What's the idea? Describe it in a sentence or two."

  2. Ask structured questions. Use a single AskUserQuestion call with up to 3 questions:

Question Options Sets
Which management system? ISMS, QMS, DSMS, IMS (cross-cutting) management_system
What kind of content? Richtlinie (policy), Prozess (process), Arbeitsanweisung (work instruction), Nachweis (record/evidence), Sonstiges Title prefix, context
Where does this idea come from? Eigene Beobachtung, Audit-Finding, Gesetzesaenderung, Management-Review, Vorfall, Gap-Analyse quelle

Map quelle answers to YAML values: eigene-beobachtung, audit, regulatorisch, management-review, vorfall, gap-analyse.

  1. Enrich with context (optional follow-up, only if relevant):
  2. If ISMS or DSMS: ask which norm/regulation is relevant (e.g., ISO 27001 A.x.y, DSGVO Art. x)
  3. Search vault for related existing files using Grep on keywords from the description
  4. Ask if there is a deadline or urgency

  5. Create the vorschlag file.

  6. Scan vault/aufgaben/eingang/ for existing vorschlag-YYYY-MM-DD-*.md files to determine next sequence number (start at 001 if none exist for today)
  7. Write to: vault/aufgaben/eingang/vorschlag-YYYY-MM-DD-NNN.md
  8. YAML frontmatter per schema below (all triage fields null)
  9. Body with # Title, ## Beschreibung (from user input), ## Kontext (norm refs, related files), ## Umsetzungsschritte (initial checkbox list derived from the idea)
  10. Use ASCII-compatible umlauts in filenames (ae/oe/ue), real umlauts in content

  11. Confirm and offer next steps. Show the created file path and offer:

  12. Capture another idea? → repeat from step 1
  13. Triage this item now? → /vt-v-intake triage
  14. Back to IMS overview? → /vt-v-start

Example output file:

---
title: "Richtlinie fuer Remote-Arbeit erstellen"
type: aufgabe
management_system: IMS
classification: intern
status: offen
kategorie: vorschlag
zustaendig: null
frist: null
prioritaet: null
quelle: "eigene-beobachtung"
erstellt_am: '2026-03-08'
erledigt_am: null
review_date: null
approved_by: null
approved_date: null
---

# Richtlinie fuer Remote-Arbeit erstellen

## Beschreibung
VisiTrans hat keine dokumentierte Regelung fuer Remote-Arbeit. Mit zunehmendem
Home-Office brauchen wir klare Vorgaben zu Informationssicherheit, Datenschutz
und Arbeitsmitteln am Heimarbeitsplatz.

## Kontext
- Relevant: ISO 27001 A.6.7 (Remote Working), DSGVO TOM
- Bestehend: [[Informationssicherheitsrichtlinie]], [[TOM]]

## Umsetzungsschritte
- [ ] Neue Datei anlegen unter vault/ISMSI/Richtlinien/
- [ ] Regelungen fuer Heimarbeitsplatz definieren
- [ ] IT-Sicherheitsanforderungen festlegen
- [ ] Cross-Referenzen setzen

Aufgabe YAML Schema for Intake Items

All intake items use type: aufgabe with these fields:

---
title: "Descriptive title"
type: aufgabe
management_system: IMS          # or ISMS, QMS, DSMS
classification: intern
status: offen                   # offen → bewertet → genehmigt → in_bearbeitung → erledigt
kategorie: vorschlag            # distinguishes intake items from operational aufgaben
zustaendig: null                # set during triage (ISB, DSB, GF)
frist: null                     # set during triage (YYYY-MM-DD)
prioritaet: null                # set during triage (hoch, mittel, niedrig)
quelle: ""                      # audit | team | regulatorisch | vorfall | management-review | gap-analyse
erstellt_am: "YYYY-MM-DD"
erledigt_am: null
# Optional fields set during propose:
zweck: null
zielort: null
scope: null                     # klein | mittel | gross
estimated_files: null
reviewer: null
akzeptanzkriterien: null
umsetzung: null                 # direct | aufgabe | cwp
review_date: null
approved_by: null
approved_date: null
---

Integration with Other Skills

  • /vt-v-cwp — When triage creates a new CWP, update .content-state.yaml
  • /vt-v-audit — Audit findings can be seeded as intake items
  • /vt-v-plan — Planning output feeds into intake for prioritization
  • /vt-v-write — Triaged single-file items go directly to the write skill

GitHub Labels

When creating GitHub Issues during triage, use these labels:

Label Purpose
ims-quality Broken links, YAML errors, skeleton content
ims-gap Missing policies or processes
ims-content Content deepening or improvement
ims-compliance Compliance-critical items
human-action Requires human decision or input

Vault Paths

  • Aufgaben directory: vault/aufgaben/ (with subfolders: eingang/, bewertung/, aktiv/, archiv/)
  • State file: .content-state.yaml (repo root)
  • Triage dashboard: vault/dashboards/vorschlaege-triage.md (Obsidian dataview)

Important Notes

  • The vault path is relative to the V004 Handbuch repo root, not the toolkit repo
  • Always verify you are working in the correct repo before modifying files
  • The intake_scanner.py script takes the vault root as its argument
  • The evaluate_vorschlag.py script takes a vorschlag file path and vault root
  • Aufgabe files must pass the pre-commit YAML validation hook
  • git mv is used for folder transitions to preserve history

Open Brain Capture (Optional)

After processing intake items, if the capture_thought MCP tool is available, capture the intake outcome.

How: 1. Check if capture_thought tool is available. If not: skip silently. 2. If no items were processed: skip capture. 3. Call capture_thought with:

thought: "VMS intake {date}: {N} Vorschläge processed. Accepted: {N}. Deferred: {N}. Rejected: {N}. Key proposal: {title of highest-priority accepted item}."
4. On timeout or error: log debug message and continue. Never fail the skill.