continuity
Skill1 starsChanged 3 months agoMITView on GitHub
Extract records from chats and discover a workspace schema from spreadsheets or an interview. LLMs are great at summarizing but not good at records — point this at any chat with your connectors and get structured records out, with grounding from other relevant sources. Use when the user mentions continuity, discover schema, extract records from chats, convert a conversation into records, update an inwrk bundle, asks about records already stored in inwrk/, wants to visualize their knowledge base (visualize, canvas, show my knowledge base), apply canvas changes to create, update, or delete records in the bundle, manage event-driven automations (when X happens do Y, add an automation, check schedules), or fix / repair broken inwrk links.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- hiroqt/overdrivetheir own version, first seen Nov 1, 2026
- wangsalin/ai-acting-systemtheir own version, first seen Oct 13, 2026
- vikcena01/ai-continuity-plugintheir own version, first seen Sep 16, 2026
- mychaelconnolly/continuity-skilltheir own version, first seen Jul 3, 2026
- tance-mang/chinese-webnovel-skillstheir own version, first seen Jun 12, 2026
- kevinmanase/continuity-agent-skillstheir own version, first seen May 22, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- tance-mang/chinese-webnovel-skills★ 97same name
- vikcena01/ai-continuity-plugin★ 5same name
- hiroqt/overdrive★ 2same name
- openmetaloom/skills★ 2same name
- wangsalin/ai-acting-system★ 2same name
- kevinmanase/continuity-agent-skills★ 1same name
- mychaelconnolly/continuity-skill★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
56 rules. 0 are common, 36 are distinctive, and 20 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
36
Distinctive
This author's own choices. Worth a look.
20
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Every business already has an implicit schema across spreadsheets, documents, and conversations.
- Distinctive: line 37
Run this once before query mode, schema setup, or the 6-step workflow.
- Very specific: line 56
If the pull succeeded, briefly tell the user Continuity was updated, re-read this SKILL.md (and any references/ files you already loaded), …
- Distinctive: line 57
If fetch/pull fails (offline, dirty tree, diverged history), continue with the current copy — do not ask the user to fix it unless they …
- Distinctive: line 61
Schema setup: when the user:
- Distinctive: line 66
Extract / update: when the user:
- Distinctive: line 73
Query: when the user:
- Distinctive: line 78
Visualize: when the user:
- Distinctive: line 83
Apply canvas changes: when the user:
- Distinctive: line 88
Automations: when the user:
- Distinctive: line 94
Repair links: when the user:
- Distinctive: line 115
Read the relevant reference before executing each stage.
- Distinctive: line 121
When setup is requested (or required before first extract — see Step 2), follow schema-setup.md:
- Distinctive: line 125
Ask only questions the data cannot resolve.
- Very specific: line 126
Write inwrk/schema.md + inwrk/schema/vN.md.
- Very specific: line 132
If the first extract includes CSV/Sheet attachments and schema.md is missing, run setup before extract unless the user declines and asks to …
- Distinctive: line 138
If the user is asking about an existing bundle (not providing new context to convert), run Step 0 first, then follow query.md:
- Very specific: line 140
Read inwrk/index.md and inwrk/records/index.md (and schema.md when present for type names)
- Distinctive: line 143
When a bundle with records exists, end with a one-line canvas suggestion (see Visualizing a bundle)
- Very specific: line 149
When the user asks to fix / repair links (or you offer after spotting /records/… paths), follow link-repair.md:
- Distinctive: line 151
Run Step 0 if needed; locate the bundle
- Very specific: line 162
When an inwrk/ bundle with records exists:
- Distinctive: line 168
Do not auto-open a canvas after every run.
- Distinctive: line 174
When a canvas patch arrives (Apply button chat or explicit "apply canvas changes"):
- Distinctive: line 176
Run Step 0 if needed
- Very specific: line 177
Follow canvas-update.md — validate, write creates/updates/deletes, regenerate index and log, emit events, evaluate automations
- Distinctive: line 181
Do not re-run extract. Do not bump schema.
- Distinctive: line 189
When the user asks to add or change an automation:
- Very specific: line 193
Write as status: draft or, only after the user confirms, status: confirmed
- Distinctive: line 194
Never auto-confirm; never execute draft automations
- Distinctive: line 222
If no context is provided and the user is not querying an existing bundle or running setup-only, ask for a chat (and optional grounding …
- Very specific: line 226
Default output directory: inwrk/ in the current workspace.
- Very specific: line 230
If inwrk/schema.md exists with status: confirmed → load it as authoritative (object_types, field defs, relationships, rules).
- Very specific: line 231
If schema.md is missing:
- Distinctive: line 233
If the user declines setup and wants to extract now → use default types from objects.md (or a user-requested subset)
- Distinctive: line 234
Never silently invent and confirm a full custom schema without user review
- Distinctive: line 245
Create the directory structure per okf-output.md
- Distinctive: line 248
Run or offer schema setup.
- Distinctive: line 254
Follow stages.md — Stage 1: Extract.
- Distinctive: line 265
Do not hallucinate fields.
- Very specific: line 268
Never invent record_id values
- Distinctive: line 269
Prefer precision over recall
- Distinctive: line 273
Follow stages.md — Stage 2: Review.
- Distinctive: line 281
Use transcript as source of truth
- Very specific: line 284
Use schema dedup / identity keys when merging or setting updates_record_id
- Distinctive: line 289
Follow stages.md — Stage 3: Write and lessons and okf-output.md.
- Distinctive: line 304
Lessons: Update primarily from user corrections.
- Very specific: line 326
With confirmed
inwrk/schema.md: use that schema's objects and fields. - Very specific: line 328
Without a workspace schema (fallback): default types Task, Thread, Attendance, Appointment, Lead, Expense, Decision, Blocker, Question from …
- Very specific: line 336
Prefer discovering a workspace schema via setup rather than hand-authoring only object_schemas in index.md.
- Very specific: line 342
When inwrk/ already exists:
- Very specific: line 397
If the user requests only a specific stage (e.g., "just extract drafts"), run that stage and return JSON output without writing the full …
- Distinctive: line 401
Empty transcript (extract mode): Ask for a chat (and optional grounding).
- Very specific: line 404
Conflicting prior records: Prefer null updates_record_id over incorrect linkage
- Distinctive: line 408
Draft automation: Never execute until the user confirms
- Distinctive: line 410
Missing connector for external action: Leave a notification / note in summary.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Continuity
Extract records from chats — against a discovered workspace schema.
LLMs are great at summarizing and going through stuff but not good at records. Point Continuity at any chat with your connectors and get it to extract records. Provide grounding with other relevant sources.
Every business already has an implicit schema across spreadsheets, documents, and conversations. Prefer discovering that schema (setup) over only imposing Continuity's default nine types. Once confirmed, recurring runs create and update records against it, flag misfits, and propose schema changes when patterns recur.
Writes portable records on disk (inwrk/ by default). Also answers questions from an existing bundle without re-extracting.
This skill is self-contained. All stage instructions, object schemas, output format rules, and query guidance live in this skill's references/ directory.
Step 0: Check for updates (installed copies only)
Run this once before query mode, schema setup, or the 6-step workflow. Do not block the user's request on a failed check.
- Resolve
SKILL_DIR= the directory that contains thisSKILL.md. - Skip (development or non-GitHub install) when any of these are true:
- The current workspace root is
SKILL_DIR(you are editing/developing this repo) SKILL_DIRis not a git repositorygit -C "$SKILL_DIR" remote get-url origindoes not containgithub.com/inwrkai/continuity(also accept legacygithub.com/inwrkai/ops-brain)
- The current workspace root is
- Otherwise (cloned install from GitHub), update if behind:
git -C "$SKILL_DIR" fetch origin --quiet
LOCAL=$(git -C "$SKILL_DIR" rev-parse HEAD)
REMOTE=$(git -C "$SKILL_DIR" rev-parse @{u} 2>/dev/null || git -C "$SKILL_DIR" rev-parse origin/main 2>/dev/null || true)
if [ -n "$REMOTE" ] && [ "$LOCAL" != "$REMOTE" ]; then
git -C "$SKILL_DIR" merge-base --is-ancestor "$LOCAL" "$REMOTE" 2>/dev/null \
&& git -C "$SKILL_DIR" pull --ff-only --quiet
fi- If the pull succeeded, briefly tell the user Continuity was updated, re-read this
SKILL.md(and anyreferences/files you already loaded), then continue with the updated instructions. - If fetch/pull fails (offline, dirty tree, diverged history), continue with the current copy — do not ask the user to fix it unless they explicitly want an upgrade.
When to use
Schema setup when the user:
- Says
continuity setup,discover schema,set up my workspace schema, or equivalent - Attaches CSVs / Sheets for schema discovery with no confirmed
inwrk/schema.mdyet
Extract / update when the user:
- Mentions continuity, extract records from chats, or wants records from a conversation
- Points at a chat (pasted transcript, connectors/MCP, attached exports) and wants actionable records
- Wants grounding from other sources alongside the chat
- Wants to update an existing inwrk bundle with new context
Query when the user:
- Asks about records already in
inwrk/(open tasks, blockers, what changed, etc.) - Wants a summary or filter of an existing bundle without new input
Visualize when the user:
- Asks to visualize, open a canvas, or show my knowledge base
- Wants an interactive live view of records and relationships in an existing bundle
Apply canvas changes when the user:
- Clicks Apply in the continuity canvas (patch arrives via
newComposerChaton Cursor) - Says apply canvas changes and provides or references a canvas patch JSON
Automations when the user:
- Says
add an automation,when X happens do Y,automate …, or equivalent - Asks to confirm, list, disable, or check automations / schedules
- Approves or skips a proposed external automation action (email, message, calendar)
Repair links when the user:
- Says
fix links,repair broken links,fix continuity links, or reports thatinwrk/record links do not open - (Optional offer) You notice leading-slash
/records/…links while loading a bundle
Reference files
| File | Purpose |
| references/stages.md | Extract, review, and write/lessons stage instructions |
| references/objects.md | Fallback default object types and field schemas |
| references/schema-setup.md | Discover and confirm a workspace schema |
| references/schema-vocabulary.md | Suggestion vocabulary for objects, properties, rules |
| references/okf-output.md | Bundle layout, schema files, frontmatter, write/update behavior |
| references/link-repair.md | Rewrite legacy /records/… links to editor-relative paths |
| references/query.md | How to answer questions from an existing bundle |
| references/canvas.md | Suggest and build an interactive knowledge-base canvas |
| references/canvas-update.md | Apply batched create/update/delete patches from the canvas |
| references/events.md | Structured event log (events.jsonl) for mutations and audit |
| references/automations.md | Confirmed Trigger → Condition → Action automations |
Read the relevant reference before executing each stage. For a navigation index, see AGENTS.md.
Schema setup
When setup is requested (or required before first extract — see Step 2), follow schema-setup.md:
- Path A — profile CSVs / Google Sheets / tables; propose objects, fields, relationships, rules
- Path B — short interview if no tabular data
- Ask only questions the data cannot resolve; user confirms
- Write
inwrk/schema.md+inwrk/schema/vN.md; syncindex.md
Bundled demo sources (no connectors): sample/README.md and sample/sources/.
Trigger phrases: continuity setup, discover schema, set up my workspace schema.
If the first extract includes CSV/Sheet attachments and schema.md is missing, run setup before extract unless the user declines and asks to use defaults.
Querying a bundle
If the user is asking about an existing bundle (not providing new context to convert), run Step 0 first, then follow query.md:
- Read
inwrk/index.mdandinwrk/records/index.md(andschema.mdwhen present for type names) - Load only matching record files
- Answer with citations; do not re-run extraction
- When a bundle with records exists, end with a one-line canvas suggestion (see Visualizing a bundle)
Repairing broken links
When the user asks to fix / repair links (or you offer after spotting /records/… paths), follow link-repair.md:
- Run Step 0 if needed; locate the bundle
- Scan for leading-slash internal links; rewrite to editor-relative paths
- Append a Maintenance log entry; do not emit events
- Report files and link counts updated
New writes must use editor-relative paths per okf-output.md. Chat citations use inwrk/records/<slug>.md.
Visualizing a bundle
When an inwrk/ bundle with records exists:
- Suggest always — after extract Step 6 summaries, query answers, and schema setup, end with one line offering a live canvas (e.g. "Say visualize to open an interactive knowledge-base canvas.")
- Open only on request — when the user asks to visualize, show their knowledge base, or open a canvas, follow canvas.md
- Apply patches — when the user applies canvas changes, follow canvas-update.md, then refresh the canvas
Do not auto-open a canvas after every run.
Applying canvas changes
When a canvas patch arrives (Apply button chat or explicit "apply canvas changes"):
- Run Step 0 if needed
- Follow canvas-update.md — validate, write creates/updates/deletes, regenerate index and log, emit events, evaluate automations
- Rebuild the canvas from the live bundle per canvas.md Refresh
- Report created / updated / deleted titles, automations fired, and any external actions awaiting approval
Do not re-run extract. Do not bump schema.
Automations
Event-driven Trigger → Condition → Action rules live in inwrk/automations.md (not in schema.md). Structured mutations append to inwrk/events.jsonl. See events.md and automations.md.
When the user asks to add or change an automation:
- Run Step 0 if needed; locate the bundle
- Draft the automation in chat (trigger, optional condition, actions)
- Write as
status: draftor, only after the user confirms,status: confirmed - Never auto-confirm; never execute draft automations
Internal actions (create/update/notify/archive/…) auto-run when a confirmed automation matches. External actions (email, message, calendar via MCP) are always proposed in chat and run only after the user approves.
Evaluation runs lazily after extract Step 5 and canvas apply (and on check schedules / similar). There is no background daemon.
Trigger phrases: add an automation, when X happens do Y, automate …, check schedules, list automations, acknowledge notifications.
6-step workflow (extract / update)
Execute Step 0, then all six steps in order unless the user explicitly requests a partial run, schema-setup-only, or is in query mode.
Step 1: Gather context
Collect the chat (and any grounding) as the transcript:
- The conversation the user pointed at (pasted text, thread export, or chat fetched via connectors / MCP)
- Attached files and other grounding sources the user provided or asked you to pull in
- MCP / connector results the user asked you to fetch
- Images or PDFs described in context (note visual content in the transcript)
- Spreadsheets used as record sources for this run (distinct from schema-setup profiling when schema already exists)
Normalize into a single transcript string. Preserve speaker labels, timestamps, and message order when present. Note the source (chat, connectors, file names) for the run summary.
Determine anchor_date: prefer an explicit transcript date; otherwise use today's date (ISO 8601 YYYY-MM-DD). Relative dates in fields resolve against this anchor.
If no context is provided and the user is not querying an existing bundle or running setup-only, ask for a chat (and optional grounding sources) before proceeding.
Step 2: Locate or create the inwrk bundle
Default output directory: inwrk/ in the current workspace. Honor a user-specified path if given. If inwrk/ is missing but a legacy okf/ bundle exists, rename okf/ → inwrk/ (e.g. mv okf inwrk) before loading, then continue with inwrk/.
Schema gate:
- If
inwrk/schema.mdexists withstatus: confirmed→ load it as authoritative (object_types, field defs, relationships, rules). Prefer it overindex.mdfrontmatter when they disagree; then syncindex.mdif stale. - If
schema.mdis missing:- Offer setup per schema-setup.md (especially if tabular sources are present)
- If the user declines setup and wants to extract now → use default types from objects.md (or a user-requested subset)
- Never silently invent and confirm a full custom schema without user review
If the bundle exists:
- Load
lessons.mdbody (YAML lesson list) - Load
records/index.mdintoprior_record_summaries(do not load every record file yet) - Load workspace schema as above (or
index.mdobject_types/object_schemaswhen no schema) - Load full prior record files only when a draft clearly matches one (see okf-output.md)
If the bundle does not exist:
- Create the directory structure per okf-output.md
- Initialize empty lessons
- Set
prior_record_summariesto empty - Run or offer schema setup; otherwise use default object types from objects.md unless the user scoped otherwise
Confirm the object type scope with the user only if ambiguous and no confirmed schema exists. With a confirmed schema, use that scope.
Step 3: Extract draft records
Follow stages.md — Stage 1: Extract.
Inputs: transcript, lessons, object_types, object_schemas (from workspace schema when present), relationships, rules, prior_record_summaries, anchor_date
Output: JSON array of draft records with object, title, description, fields, citations, confidence (high | medium | low), updates_record_id
Rules:
- One draft = one record instance
- Apply lessons when patterns match
- Align fields to the workspace schema (or fallback defaults)
- Do not hallucinate fields; do not force misfits into wrong fields — note them for the run summary
- Apply identity / dedup rules when considering prior matches
- Resolve relative dates against
anchor_date - Never invent
record_idvalues - Prefer precision over recall
Step 4: Review drafts
Follow stages.md — Stage 2: Review.
Inputs: transcript, drafts, workspace schema (relationships + rules when present), optional user corrections
Output: Revised drafts array (same schema). Edit drafts in place — merge, split, drop, edit, or relink. Do not emit a separate feedback-action vocabulary.
Rules:
- Use transcript as source of truth
- Be conservative — prefer fewer, high-confidence drafts
- Apply user corrections as authoritative
- Use schema dedup / identity keys when merging or setting
updates_record_id - Drop anything below
lowconfidence
Step 5: Write inwrk bundle and update lessons
Follow stages.md — Stage 3: Write and lessons and okf-output.md.
Write or update:
inwrk/index.md— root index withokf_version: "0.1"and object config (synced from schema when present)inwrk/lessons.md— updated lesson YAML when corrections warrant itinwrk/records/<slug>.md— one file per record (create or update in place; handle slug collisions)inwrk/records/index.md— regenerate directory listinginwrk/log.md— append Creation/Update entries for this runinwrk/runs/<date>-<slug>.md— short run summary including schema misfits/proposals when relevant; retain last 20 runsinwrk/events.jsonl— appendrecord.created/record.updated(andrun.completed) per events.md- Evaluate confirmed automations per automations.md — process new events, lazy schedule check; auto-run internal actions; propose external actions for approval
Do not auto-bump schema.md in this step. Propose schema changes in the run file and chat summary; apply only after user approval (then write schema.md, snapshot schema/vN.md, sync index.md, log Schema, emit schema.confirmed / schema.bumped).
Lessons: Update primarily from user corrections. Add a lesson from a self-review catch only when the same pattern recurs. Skip if there is nothing to learn. Max 30 lessons.
Step 6: Chat summary
Report:
- Drafts extracted → kept after review
- Records created vs updated (list titles with object types)
- Lessons added/updated (if any)
- Output path (
inwrk/or custom) - Low-confidence records flagged for user review
- Schema misfits (if any)
- Schema proposals awaiting approval (if any)
- Automations fired (names + triggering records); records created/updated by automations
- External automation actions awaiting approval (if any)
- Open notifications count when
notifications.mdhas open items - Canvas suggestion when the bundle has records (see Visualizing a bundle)
Object type scoping
With confirmed inwrk/schema.md: use that schema's objects and fields. It is authoritative.
Without a workspace schema (fallback): default types Task, Thread, Attendance, Appointment, Lead, Expense, Decision, Blocker, Question from objects.md.
The user may request a subset of defaults:
continuity this chat — only Task, Decision, and BlockerPrefer discovering a workspace schema via setup rather than hand-authoring only object_schemas in index.md. Legacy custom types in index.md still work; migrate them into schema.md when convenient. See objects.md and schema-setup.md.
Handling updates
When inwrk/ already exists:
records/index.mdbecomes prior summaries; load full files only for likely matches- Match identity using schema dedup rules when present (not title alone)
- Drafts with
updates_record_idupdate the matching record file in place - New drafts create new record files with fresh UUIDs
log.mdgets Update entries for modified records, Creation entries for new ones- Lessons accumulate across runs (max 30), driven mainly by user corrections
- Schema misfits are recorded in the run file; recurring patterns become proposals — bump schema only on user approval
- Mutations append to
events.jsonl; confirmed automations evaluate afterward (internal auto-run; external propose-and-approve)
Quality principles
- Precision over recall — skip uncertain drafts
- No hallucination — only extract fields supported by the transcript
- Schema fidelity — do not force facts into the wrong object or field; flag misfits
- Date anchoring — resolve relative dates to ISO 8601 against
anchor_date - Categorical confidence — use
high/medium/low, not numeric scores - Traceability — preserve source excerpts in record citations and run summaries
- Standalone — do not import, shell out to, or reference external pipeline code
- Summary-first loading — do not load every record on every run
- No silent schema bumps — evolve
schema.mdonly with user approval - No silent automation confirms — only
status: confirmedautomations run; external actions need explicit approval - No automation cascades — events with
source: automationdo not re-trigger automations - Editor-resolvable links — no leading-slash
/records/…in bundle files; use relative paths (andinwrk/records/…in chat)
Example session
User: "continuity — extract records from this chat: [paste]"
Agent:
- Gathers the chat (plus any connector/grounding context) as transcript; sets
anchor_date - Loads
inwrk/(or creates it); loads confirmed schema or offers setup / uses defaults - Extracts drafts against the schema
- Reviews — merges duplicates via identity rules, drops noise
- Writes the inwrk bundle; notes any schema misfits in the run file
- Reports:
continuity run complete
- 6 drafts → 4 records (3 created, 1 updated)
- Output: inwrk/
- Review: "Fix login bug" (confidence low) — please verify
- Schema misfits: 1 (warranty claim — no Claim object)Partial runs
If the user requests only a specific stage (e.g., "just extract drafts"), run that stage and return JSON output without writing the full bundle. Schema-setup-only ends after writing schema.md. Default to the full 6-step workflow for extract unless explicitly told otherwise.
Errors and edge cases
- Empty transcript (extract mode): Ask for a chat (and optional grounding); do not proceed
- No drafts found: Report zero extraction; still write a run summary if useful
- All drafts low confidence: Report findings, flag for review, ask whether to write
- Conflicting prior records: Prefer null
updates_record_idover incorrect linkage - Query with missing bundle: Tell the user
inwrk/was not found; offer to create one from a chat or run schema setup - Missing schema on first extract with sheets: Offer setup before extract; if declined, use defaults
- Schema proposal: Present clearly; do not bump until the user approves
- Draft automation: Never execute until the user confirms
- External automation action: Propose payload; do not call MCP until the user approves
- Missing connector for external action: Leave a notification / note in summary; do not fail the whole evaluation
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

