agentsclimarketplace

Document

Skill arndvs/ctrlshft/skills/document

The system your AI agents are missing — synced instructions, workflow skills, hardened secrets, and autonomous loops across every machine.

Install
npx -y skills add arndvs/ctrlshft --skill document

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Write, update, or audit documentation. Use when asked to 'document this', 'write docs', 'update the README', 'add JSDoc', 'write a changelog', or 'create an ADR'.

SKILL.md

10.5 KB, as published. Nobody here has run it

Document

If running interactively (human present), output "Read Document skill." to acknowledge. If running with --dangerously-skip-permissions (AFK/unattended), skip acknowledgement and proceed directly.

Pipeline position: can be used standalone or after /do-work to document what was just built.

Proactive use

Also use proactively when a conversation contains code, architecture decisions, API design, data models, or system flows that have no corresponding documentation — even if the user hasn't asked explicitly. When in doubt, scan the conversation and propose a documentation plan.

Role

You write accurate, minimal, audience-appropriate documentation. You do not invent behavior — you document what the code actually does. If something is unclear, you read the source before writing. You also generate Mermaid.js diagrams whenever a concept is better understood visually than in prose.


Step 0: Scan Conversation Context

Before asking anything, read the current conversation and extract signals. Look for:

SignalSuggested doc type
Functions, classes, interfacesJSDoc / inline comments
System or service descriptionsREADME + architecture diagram
API routes, request/response shapesAPI reference + sequence diagram
A decision being made or justifiedADR
Data model, schema, entity relationshipsERD (Mermaid) + data dictionary
Auth, request, or processing flowsFlowchart or sequence diagram
State transitions (order status, lifecycle)State diagram
A shipped or completed featureChangelog entry + user guide
Multi-service or distributed systemC4 context/container diagram
Branching strategy or git workflowGit graph diagram
Timeline, milestones, release planGantt chart

Based on what you find, propose a documentation plan before asking the user anything. Example:

"I can see you've described an auth flow, a user data model, and a deployment decision. I'd suggest: (1) a sequence diagram for the auth flow, (2) an ERD for the data model, (3) an ADR for the deployment choice, and (4) a README section covering setup. Want me to proceed with all of these, or adjust the scope?"

Only ask clarifying questions for genuine gaps that can't be inferred.


Step 1: Establish Context (if Step 0 left gaps)

If the conversation doesn't provide enough signal, ask:

What type of documentation? (select all that apply)

  • Code/API docs (JSDoc, inline comments)
  • README / project onboarding
  • Architecture decision records (ADRs)
  • User-facing docs / guides
  • Changelog / release notes
  • Diagrams (flowchart, sequence, ERD, state, C4, Gantt, git graph)

Where does it live?

  • In the codebase (inline + markdown files)
  • External (Notion, Gitbook, Mintlify, etc.)
  • GitHub (README, wiki, releases)
  • All of the above

Ask both in a single message. Do not proceed until answered.


Step 2: Explore Before Writing

Read source files, existing docs, and git history before writing. Never document from memory or assumption.

  • Code docs → read the implementation, not just the interface
  • READMEs → read codebase structure, package.json, existing README
  • ADRs → read the code that reflects the decision
  • Changelogs → read git log or merged PRs since last release
  • User guides → read the feature end-to-end as a user encounters it
  • Diagrams → identify the entities, relationships, or steps from actual code or conversation — never invent them

Step 3: Write

Code/API Docs

  • Document the why not the what — the code shows what
  • JSDoc: include @param, @returns, @throws where non-obvious
  • Inline comments: only for non-obvious logic. Delete comments that restate the code
  • No placeholder descriptions. Read more source if needed.

README / Project Onboarding

Follow WHY / WHAT / HOW:

  • WHY — what problem does this solve and for whom
  • WHAT — what the project is and its major parts
  • HOW — how to install, run, test, and contribute

Scannable. No walls of text. Prefer code blocks over prose for commands.

Architecture Decision Records (ADRs)

# ADR-NNN: [Title]

Date: YYYY-MM-DD
Status: Proposed | Accepted | Deprecated | Superseded by ADR-NNN

## Context

[What situation forced this decision?]

## Decision

[What was decided?]

## Consequences

[What does this make easier? What does it make harder?]

When to write one. Create an ADR when the decision is costly to reverse, when it constrains future choices, or when you chose between viable alternatives a maintainer would later question. Routine, easily-reversible choices do not need an ADR. As always, document the decision actually made — do not invent rationale.

User-Facing Docs / Guides

  • Write for the user's goal, not the system's structure
  • Task-oriented: "How to X" not "X feature overview"
  • No internal jargon. No implementation detail unless the user needs it
  • Include examples. Prefer working code snippets over prose.

Changelog / Release Notes

Follow Keep a Changelog format:

## [version] - YYYY-MM-DD

### Added

### Changed

### Fixed

### Removed

Read git log or merged PRs to populate. Never fabricate entries.


Step 3b: Diagrams (Mermaid.js)

Generate Mermaid diagrams whenever a concept is better understood visually. Choose the right type:

Flowchart — decision trees, request lifecycles, branching logic

flowchart TD
    A[User submits form] --> B{Valid?}
    B -- Yes --> C[Save to DB]
    B -- No --> D[Return errors]
    C --> E[Send confirmation email]

Sequence Diagram — API calls, service interactions, auth flows

sequenceDiagram
    participant Client
    participant API
    participant Auth
    participant DB

    Client->>API: POST /login
    API->>Auth: Validate credentials
    Auth-->>API: Token
    API->>DB: Log session
    API-->>Client: 200 OK + token

Entity-Relationship Diagram — data models, schemas, relationships

erDiagram
    USER {
        uuid id PK
        string email
        string name
    }
    ORDER {
        uuid id PK
        uuid user_id FK
        string status
        timestamp created_at
    }
    USER ||--o{ ORDER : places

State Diagram — lifecycle states, status transitions

stateDiagram-v2
    [*] --> Draft
    Draft --> Submitted : user submits
    Submitted --> Approved : admin approves
    Submitted --> Rejected : admin rejects
    Approved --> [*]
    Rejected --> Draft : user revises

Class Diagram — OOP structures, interfaces, inheritance

classDiagram
    class Animal {
        +String name
        +speak() void
    }
    class Dog {
        +fetch() void
    }
    Animal <|-- Dog

C4 Context Diagram — system boundaries, external actors

C4Context
    Person(user, "User", "Uses the web app")
    System(app, "Web App", "Core application")
    System_Ext(email, "Email Service", "Sends transactional email")
    Rel(user, app, "Uses")
    Rel(app, email, "Sends via")

Gantt Chart — timelines, release plans, milestones

gantt
    title Release Plan
    dateFormat  YYYY-MM-DD
    section Phase 1
    Auth module     :done, 2025-01-01, 2025-01-14
    API layer       :active, 2025-01-15, 2025-01-28
    section Phase 2
    Dashboard UI    :2025-01-29, 2025-02-11

Git Graph — branching strategy, merge flows

gitGraph
    commit
    branch feature/auth
    checkout feature/auth
    commit
    commit
    checkout main
    merge feature/auth
    commit

Rules for diagrams:

  • Only include entities/steps that exist in the code or conversation — never invent them
  • Prefer one clear diagram over a large cluttered one; split into multiple if needed
  • Always accompany a diagram with a one-sentence caption explaining what it shows
  • If multiple diagram types apply, generate all of them

Step 4: Validate

  • Does every claim trace to actual code or behavior?
  • Are there any TODOs, placeholders, or "TBD" entries? Remove or resolve them.
  • If documenting a public API, verify the examples actually run.
  • For diagrams: do all nodes/entities correspond to real components? Are relationships accurate?

Rules

Do:

  • Scan the conversation before asking anything
  • Propose a documentation plan based on what you find
  • Generate Mermaid diagrams when a concept has spatial, sequential, or relational structure
  • Document what exists, not what should exist
  • Keep docs close to what they describe (prefer inline over wiki for code)
  • Use the simplest structure that communicates intent

Do not:

  • Ask clarifying questions that can be answered by reading the conversation
  • Invent behavior, parameters, or diagram nodes
  • Add docs that restate the code
  • Document unimplemented features
  • Use the words "straightforward", "simple", or "just"

Supported Document Types (Reference)

TypeWhen to use
JSDoc / inline commentsFunctions, classes, modules
READMENew project or missing onboarding
ADRArchitecture or tech decisions
User guideFeature walkthrough for end users
API referencePublic-facing endpoints or SDK
ChangelogAfter a release or sprint
FlowchartDecision logic, request lifecycle
Sequence diagramService interactions, auth flows
ERDData models, schema relationships
State diagramLifecycle, status transitions
Class diagramOOP structures, inheritance
C4 diagramSystem context, containers
Gantt chartTimelines, milestones
Git graphBranching and merge strategy

Handoff

If context is high before documentation is complete, follow the standard handoff protocol (@~/dotfiles/instructions/handoff.instructions.md) — persist progress to working/ and provide the pickup command.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.