Invest Handoff logo

Invest Handoff

Community
erikaflowers
invest-handoff

Generates a condensed onboarding document tailored to a specific role (engineer, designer, agent, client). Reads VECTOR.md, CLAUDE.md, ARCHITECTURE.md, and current /vector/ state. Use when onboarding a collaborator, starting a cold agent session, or preparing a client check-in.

Overview

Publishererikaflowers
Repositoryinvestiture
Skill nameinvest-handoff
Stars
55
Forks
9
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by erikaflowers on GitHub. Read the source before you install it.

Installation

Install the Invest Handoff AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/erikaflowers/investiture/tree/main/.claude/skills-optional/invest-handoff
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/erikaflowers/investiture.git /tmp/investiture
mkdir -p .claude/skills
cp -r /tmp/investiture/.claude/skills-optional/invest-handoff .claude/skills/invest-handoff
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Invest Handoff in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Invest Handoff on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Invest Handoff is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Investiture Skill: Generate Handoff

You are writing the document that saves someone an hour of reading. VECTOR.md, CLAUDE.md, and ARCHITECTURE.md are comprehensive — but a contractor who needs to ship a feature this week, or an agent starting a cold session, does not need all of it. They need the right 20%. This skill reads the full doctrine and distills it into a role-specific brief that tells someone what this project is, what layer to touch, what not to do, and where to find answers.

This skill runs on demand. It does not depend on other skills having run first, but it reads all three doctrine files. The richer the doctrine, the more useful the handoff. If doctrine is sparse, the handoff will be sparse — run /invest-backfill or fill in doctrine files first.

Step 0: Determine the Role

If --role [role] was passed: Use that role. Valid values: engineer, designer, agent, client.

If no role was passed: Generate a generic handoff suitable for any contributor. Skip role-specific sections.

Role definitions:

  • engineer — A developer who will write or review code. Needs layer map, conventions, what not to do, and where things live. Less context on product vision.
  • designer — A designer who will work on UI, UX, or visual decisions. Needs design principles, token system, component structure, and product goals. Less context on technical layers.
  • agent — A Claude Code session starting cold. Needs a complete operational brief: reading order, what to do, what not to do, current status, and where to find everything.
  • client — A stakeholder who needs project context without implementation detail. Needs product goals, current stage, what has been built, and what's in progress. No technical depth.
  • generic — No role passed. Covers all bases at a moderate depth suitable for any contributor.

Step 1: Read Doctrine

Read all three doctrine files:

  1. VECTOR.md — Extract: project name, problem statement, target audience, value proposition, current project stage, design principles, key constraints, quality gates, open questions, key assumptions and their status.
  2. CLAUDE.md — Extract: what the agent or contributor needs to know before touching code, stack summary, key context (non-obvious decisions), what not to do, commit format, standup format.
  3. ARCHITECTURE.md — Extract: layer table (names, locations, rules), import direction, naming conventions, stack, project structure tree, "What Not to Do."

Also read the current /vector/ state: 4. /vector/audits/ — List recent audit files. Read the most recent invest-doctrine.md and invest-architecture.md if they exist. Extract: current doctrine health, open violations, recent findings. 5. /vector/decisions/ — List ADR files. Note the count and read the titles. Recent ADRs signal active architectural decisions the contributor should know about. 6. /vector/missions/ — If this directory exists, list mission manifest files and note any active missions — this signals an in-progress sprint. If it does not exist, skip this section silently.

If any doctrine file is missing, note it prominently in the handoff: "VECTOR.md not found — project identity section is incomplete."

Step 2: Write the Role-Specific Handoff

Use the appropriate template for the role.


For --role engineer

markdown
# [Project Name] — Engineer Handoff
**Date:** [today's date]

## What This Is
[2-3 sentences. Problem + solution + one distinguishing fact.]

## Stack
[Abbreviated stack table from CLAUDE.md — framework, styling, state, backend, deployment]

## Layer Map
[Condensed layer table: layer name, directory, one-sentence rule]

## Import Direction
[One-line summary: "UI → Services → Domain → [storage/API]. No reverse imports."]

## Naming Conventions
[2-3 most important conventions from ARCHITECTURE.md]

## Do Not
[The 3-5 most important prohibitions from ARCHITECTURE.md "What Not to Do" + CLAUDE.md]

## Current Status
[Project stage from VECTOR.md. Recent audit health if available. Any active missions from /vector/missions/.]

## Where to Find Things
- Doctrine: VECTOR.md → CLAUDE.md → ARCHITECTURE.md
- Research: /vector/research/
- Decisions: /vector/decisions/ ([N] ADRs)
- Audits: /vector/audits/

For --role designer

markdown
# [Project Name] — Designer Handoff
**Date:** [today's date]

## What This Is
[2-3 sentences. Problem, audience, core value. What is the user's job?]

## Design Principles
[From VECTOR.md design principles — the philosophy that should drive every decision]

## Token System
[From ARCHITECTURE.md: where tokens live, how to reference them, any naming conventions]

## Component / UI Layer
[Layer name and directory for UI components. File naming convention. Where to put new components.]

## Do Not
[Design-relevant prohibitions: hardcoded values, going outside the token system, layout decisions that contradict declared principles]

## Current Status
[Project stage. What is designed vs. what is still TBD. Any design-relevant open questions from VECTOR.md.]

## Where to Find Things
- Product goals: VECTOR.md
- Technical constraints: ARCHITECTURE.md
- Design research: /vector/research/personas/, /vector/research/jtbd/

For --role agent

markdown
# [Project Name] — Agent Session Brief
**Date:** [today's date]

## Reading Order
VECTOR.md → CLAUDE.md → ARCHITECTURE.md. Read all three before touching code.

## What This Project Is
[3-4 sentences. Problem, audience, value proposition, current stage. Everything an agent needs to orient itself.]

## Stack
[Full stack table]

## Layer Map
[Full layer table with directories and boundary rules]

## Import Direction
[Explicit: which layers import from which. Violations are high severity.]

## Naming Conventions
[All declared conventions]

## Do Not
[Complete list of prohibitions from ARCHITECTURE.md and CLAUDE.md]

## Commit Format
[From CLAUDE.md]

## Standup Format
[From CLAUDE.md]

## Current Status
[Project stage. Doctrine health from most recent /vector/audits/invest-doctrine.md. Open violations from invest-architecture.md. Active missions if any.]

## Open Questions
[From VECTOR.md open questions — things the project is still uncertain about]

## Where to Find Things
- Assumptions: /vector/research/assumptions/
- Decisions: /vector/decisions/
- Audits: /vector/audits/
- Active missions: /vector/missions/

For --role client

markdown
# [Project Name] — Project Brief
**Date:** [today's date]

## What We're Building
[3-4 sentences. Problem, audience, solution, why it matters. No technical detail.]

## Who It's For
[Target audience from VECTOR.md — specific, not generic]

## Where We Are
[Project stage in plain language: "We're in early testing with a small group of users" not "alpha stage"]

## What's Working
[Capabilities that are complete or stable — drawn from recent ADR decisions and project stage]

## What's In Progress
[Active missions if any. Current sprint focus in plain terms.]

## What We're Still Learning
[Open questions from VECTOR.md, framed as open questions not gaps]

## Next Milestone
[Quality gates or ship criteria from VECTOR.md, if filled in]

For generic (no role)

markdown
# [Project Name] — Contributor Handoff
**Date:** [today's date]

## What This Is
[3-4 sentences. Problem, audience, value proposition, stage.]

## Stack
[Abbreviated stack table]

## Layer Map
[Condensed layer table]

## Do Not
[Top 5 most important prohibitions]

## Current Status
[Stage, doctrine health, active missions]

## Where to Find Things
- Full doctrine: VECTOR.md → CLAUDE.md → ARCHITECTURE.md
- Research: /vector/research/
- Decisions: /vector/decisions/
- Audits: /vector/audits/

Step 3: Output

Print the handoff to the terminal AND save it to /vector/handoffs/[role]-[date].md.

Use the role name in the filename. If no role was specified, use generic. Use today's date in YYYY-MM-DD format.

Create the /vector/handoffs/ directory if it does not exist.

Do not overwrite existing handoffs for the same role and date — if the file exists, append -2, -3, etc. Handoffs are point-in-time snapshots, unlike audit files which reflect current state.

If --dry-run was passed: Print the handoff to the terminal only. Do not write the file.

After writing, output:

Handoff written to /vector/handoffs/[role]-[date].md

[If any doctrine files were missing:]
Warning: [filename] not found — [section] is incomplete in the handoff.

[If doctrine audit showed violations:]
Note: Most recent architecture audit found [N] high-severity violations. See /vector/audits/invest-architecture.md.

Arguments

  • No arguments: Generic handoff suitable for any contributor
  • --role [engineer|designer|agent|client]: Role-specific handoff with appropriate depth and framing
  • --dry-run: Generates and displays the handoff without writing the file

Output

/vector/handoffs/[role]-[date].md

When to Run

  • When onboarding a contractor or new team member — give them this before the doctrine files
  • Before starting a new agent session — use --role agent to generate the cold-start brief
  • Before a client check-in — use --role client for a stakeholder-ready summary
  • When handing off work between designers and engineers — --role designer and --role engineer give each side what they need without what they don't

Principles

  • The right 20%, not everything. A handoff that contains everything is not a handoff — it's the documentation. The value is in what it omits. Distill ruthlessly.
  • Role determines depth. An engineer needs layer boundaries and naming conventions. A client needs none of that. A cold agent session needs everything. The same project, four different documents.
  • Current status matters as much as structure. A handoff that describes the architecture but not the current health is missing half its value. Include audit findings and active missions.
  • Doctrine is the source; handoff is the index. The handoff tells you where to look, not everything you'll find. It points at VECTOR.md, ARCHITECTURE.md, and /vector/ — it doesn't replace them.
  • Sparse doctrine produces sparse handoffs. If VECTOR.md is full of template placeholders, the handoff will be incomplete. That's honest — but flag it. An incomplete handoff is still better than no handoff.

Frequently asked questions

What does the Invest Handoff AI skill do?

Generates a condensed onboarding document tailored to a specific role (engineer, designer, agent, client). Reads VECTOR.md, CLAUDE.md, ARCHITECTURE.md, and current /vector/ state. Use when onboarding a collaborator, starting a cold agent session, or preparing a client check-in.

Why use Invest Handoff on TypingMind?

Because you install it once and use it with any model. Invest Handoff is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Invest Handoff in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/erikaflowers/investiture/tree/main/.claude/skills-optional/invest-handoff. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Invest Handoff?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Invest Handoff?

As many as you like. As long as a model supports skills, you can use Invest Handoff with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Invest Handoff AI skill free?

It is published on GitHub by erikaflowers. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇