SDLC workflow plugins: docs-sync (documentation synchronization), docs-distill (synthesis layer — the summary view nobody rebuilds because nobody asks; discovery + drift signal via `covers:` frontmatter, crystal harvest on cut, two-way handoff with docs-sync), learn (knowledge capture), changelog (project change tracking), crystal-* (multi-root workitem discipline gate — grow/bud/cut/cave/migrate with auto-scan + 4-tier status taxonomy + in-flight capture-reminder + orphan-sidetracks gate + batch legacy-doc migration + evidence discipline: Basis taxonomy, pre-action gate, live current-model section), intercom (central cross-agent/cross-session message store outside all repos, git-remote-identity routing + agent directory: auto-aliases + user-said names + description, SessionStart identity check, hard-stop on unresolved targets), wrap (pre-clean-session check: chat-only items written to their homes, one commit, a start phrase with a slug), retro (do the shared rules work: the owner's turns across every session on the machine, read against the rules each session received), and a lesson folded into the shared rules by a subagent rather than appended — the layer may be rewritten, a change to what sessions receive is shown to the owner first, and a writer installs it only over the version it was made from, with a history of the last 50.
12 skills · hooks
Meetings and correspondence discipline for repositories that keep them as files: a configurable contract linter for meetings/<date>-<slug>/ and series files (the contract is a floor distilled from three repositories — a track may resolve as a directory or a single file, index.md is owed only after the meeting has happened), with a project's own conventions switched on by name (comms.meeting-rules); meeting files split by who reads them — the agenda the owner's, the pitch what the counterpart hears, matched by topic name, with plugin templates for agenda, prep, pitch and index; a drift signal for the generated registry and per-track meeting pointers, written as markdown or Obsidian wikilinks with participant, topic and material columns; a PreToolUse guard that refuses to mark an outgoing letter sent — by creating it so or by an edit — without `sent-proof:` — the sending tool's id or that of what the owner sent by hand, checked with the access layer where it is installed, down to who the send went to, or the owner's word — and a PostToolUse check that names one a shell command left so, and a linted attachment checklist the sender can click; the form of an outgoing draft checked per its declared `channel:` (a subject line for email, a separator before the text to send — configurable per project, drafts only), and a draft declared outside comms/ named; each paragraph of a draft's text on one line, on every channel whose receiver keeps line breaks (all but comms.markdown-channels, intercom by default); a PreToolUse guard that keeps the raw .eml out of comms/ and the meetings tree, on Write and on a copy in Bash; who may write to a person and how to address them — `trust`, `addressed_as` and the From pairs in the HQ's people/, which a project without its own finds by asking the access layer for its HQ; and a pending-item summary — who owes what by when, series queues, unsent drafts, meetings without a transcript. The wording of everything it writes into the project is con
4 skills · hooks
Unified lifecycle interface (up/down/build/test/check/fix/publish) + versioned maturity audit + AI bootstrap skill + how the agent is launched (vdx ai: session-start check, skill). MCP server: the installed vdx-mcp, else npx from @vodmal/vdx-cli on npm.
2 skills · 1 MCP server · hooks