documents
Skill1.7k starsChanged 7 months agoMITView on GitHub
Document management with markdown files, always-on entry documents linked through the documents table, and mutation/edit logs for CRM entries. Use when creating or updating row notes, entry notes, detail pages, or document-linked CRM content.
13 other projects use a version of this.
Trending
Quiet since February.thin dataabout the whole repository
Most recently taken up by
- wubinKKK/private-ai-workbenchtheir own version, first seen Nov 8, 2026
- codewhale-hq/codewhale-plugin-marketplacetheir own version, first seen Nov 8, 2026
- sneakers-the-rat/muse-skillstheir own version, first seen Nov 1, 2026
- 0mlkrizzz655335v/claude-skills-zhtheir own version, first seen Oct 15, 2026
- Geruyang/skillstheir own version, first seen Oct 15, 2026
- DenchHQ/DenchClawword for word, first seen Oct 8, 2026
Who's talking about DenchHQ/ironclaw
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
Used with
Projects with it also use research.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 3 projects that use this
Other versions13 projects use a version of this.
Word for word · 1
- DenchHQ/DenchClaw★ 1.7k100% same
Edited · 0
None found.
Wrote their own version · 12
- magnus919/agent-skills★ 172same name
- sneakers-the-rat/muse-skills★ 24same name
- codewhale-hq/codewhale-plugin-marketplace★ 5same name
- Niko-mzz/Doctor-Ge-SCI-paper-Writing★ 4same name
- niqinggood/openkitty-skills★ 4same name
- wubinKKK/private-ai-workbench★ 4same name
- 0mlkrizzz655335v/claude-skills-zh★ 2same name
- Geruyang/skills★ 2same name
- yige666s/claude-codex★ 1same name
- microsoft/amplifier-bundle-work★ 0same name
2 more not listed
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 repository35 other files it gives its agents.
- .cursor/rules/git-rules.mdcCursor rule
- agent-builderSkill
- data-builderSkill
- game-builderSkill
- platform-apiSkill
- app-builderSkill
- composio-appsSkill
- actionsSkill
- duckdb-operationsSkill
- object-builderSkill
- reportsSkill
- database-crm-systemSkill
- views-filtersSkill
- dench-integrationsSkill
- benchmarkSkill
- canarySkill
- carefulSkill
- design-consultationSkill
- design-reviewSkill
- document-releaseSkill
- freezeSkill
- guardSkill
- investigateSkill
- land-and-deploySkill
- office-hoursSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- plan-eng-reviewSkill
- qa-onlySkill
- qaSkill
- retroSkill
- reviewSkill
- shipSkill
- gstack-workflowSkill
- unfreezeSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
29 rules. 0 are common, 17 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Treat the entry document as the default long-form companion to the row.
- Distinctive: line 23
Create or reuse a connected entry document whenever you create an entry and have enough information to derive a sane filename/title.
- Distinctive: line 24
When updating an entry, ensure a connected document exists before finishing the task.
- Very specific: line 25
Keep the document registered in DuckDB documents with entry_id, parent_object_id, and file_path.
- Distinctive: line 26
If the user asks to add or change anything on an entry, update the connected document too.
- Very specific: line 31
Write the .md file: write {{WORKSPACE_PATH}}/projects/roadmap.md
- Distinctive: line 53
When the user says:
- Very specific: line 65
If the user truly means the Notes field, they will usually talk about:
- Very specific: line 72
If they explicitly ask to update the Notes field/column, update that DuckDB value and sync the connected entry document unless they clearly …
- Distinctive: line 74
If they mean entry documents, they are talking about:
- Distinctive: line 96
Update the markdown content and append the mutation log entry
- Distinctive: line 98
Before creating a new file, resolve any existing document:
- Distinctive: line 120
Use this filename structure for entry documents:
- Distinctive: line 130
If the entry clearly belongs to a source/domain where a prefix helps, include it:
- Distinctive: line 137
Use the first strong human-readable identifier available:
- Distinctive: line 160
Keep the entry document readable for humans and useful as an audit trail.
- Distinctive: line 181
Update the current sections in place and append new log items instead of rewriting history.
- Very specific: line 185
Do NOT default to {entry_id}.md for new documents
- Very specific: line 186
Do NOT confuse entry documents with the Notes richtext field
- Very specific: line 187
Do NOT create a markdown file without also inserting/updating the documents table row
- Distinctive: line 188
Do NOT write human-readable files and leave them orphaned from metadata
- Very specific: line 198
Create or repair the connected entry .md file whenever the user creates an entry, mentions notes on the row/entry, or makes a mutation and …
- Very specific: line 238
When the user asks for docs for many entries, or asks to add notes/details across many entries, create/update markdown files plus documents …
- Very specific: line 244
Write one .md file per entry under the object directory
- Distinctive: line 299
Not every markdown file under an object directory is automatically an entry document.
- Very specific: line 309
If a markdown file is meant to be the entry page, always register it in documents.
- Distinctive: line 313
After any meaningful entry mutation:
- Distinctive: line 316
Create the document if it does not exist yet
- Very specific: line 317
Update the relevant prose sections (Summary, Notes, drafts, follow-ups, etc.)
“Common” is measured: kept by at least 6 in 10 of the 10 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
CRM Documents
This skill covers document management, cross-nesting, and entry detail pages. For workspace fundamentals, see the parent crm skill (crm/SKILL.md). For creating objects, see object-builder (crm/object-builder/SKILL.md).
Document Management
Documents are markdown files in {{WORKSPACE_PATH}}/**. The DuckDB documents table tracks metadata only; the .md file IS the content.
Default Rule: Every Entry Needs a Connected Document
Treat the entry document as the default long-form companion to the row.
Mandatory defaults:
- Create or reuse a connected entry document whenever you create an entry and have enough information to derive a sane filename/title.
- When updating an entry, ensure a connected document exists before finishing the task. If it is missing, create it.
- Keep the document registered in DuckDB
documentswithentry_id,parent_object_id, andfile_path. - If the user asks to add or change anything on an entry, update the connected document too.
- Append a concise timestamped activity log entry for every meaningful mutation so the document acts as an edit log, not just a static page.
Create Document
- Write the
.mdfile:write {{WORKSPACE_PATH}}/projects/roadmap.md - Insert metadata into DuckDB:
INSERT INTO documents (title, icon, file_path, parent_id, sort_order)
VALUES ('Roadmap', 'map', 'projects/roadmap.md', '<parent_doc_id>', 0);Cross-Nesting
- Document under Object: Set
parent_object_idon the document. Place.mdfile inside the object's directory. - Object under Document: Set
parent_document_idon the object. Place object directory inside the document's directory.
Notes Field vs Entry Documents
These are not the same thing:
Notesfield: arichtextvalue stored in DuckDBentry_fields- Entry document: a standalone
.mdfile on disk, linked to the entry through thedocumentstable
When the user says:
- "fill in notes for each entry"
- "add notes to this row"
- "add a note to this entry"
- "write descriptions for all rows"
- "add detailed writeups"
- "put the outreach draft into each influencer notes page"
- "create entry docs"
default to the connected entry document.
If the user truly means the Notes field, they will usually talk about:
- a table column
- richtext field values
- filtering/sorting by Notes
- SQL updates to
entry_fields
If they explicitly ask to update the Notes field/column, update that DuckDB value and sync the connected entry document unless they clearly ask you not to.
If they mean entry documents, they are talking about:
- markdown pages
- the entry detail panel
- prose content, drafts, meeting notes, SOPs, long-form notes
- files visible under the object in the sidebar
Entry Detail Pages
Each entry in an object should have a markdown file that acts as its detail page and running edit log in the entry panel.
CRITICAL: New entry documents should use human-readable filenames, not raw UUID filenames. The file must also be registered in DuckDB documents with entry_id, parent_object_id, and file_path.
Required storage model
For every entry document:
- Reuse the existing linked document if one already exists for the entry
- Otherwise write a human-readable markdown file inside the object directory
- Insert/update a row in
documentslinking the entry to that file - Update the markdown content and append the mutation log entry
Before creating a new file, resolve any existing document:
SELECT id, title, file_path
FROM documents
WHERE entry_id = '<entry_id>'
ORDER BY updated_at DESC
LIMIT 1;INSERT INTO documents (title, file_path, parent_object_id, entry_id)
VALUES (
'Mike Murphy',
'marketing/influencer/yt-mikemurphy-001.md',
(SELECT id FROM objects WHERE name = 'influencer'),
'yt-mikemurphy-001'
);Naming convention (MANDATORY)
Use this filename structure for entry documents:
{human_readable_slug}-{sequence}.md
Examples:
acme-corp-001.mdjane-smith-001.mdq2-renewal-deal-001.md
If the entry clearly belongs to a source/domain where a prefix helps, include it:
yt-mikemurphy-001.mdfor YouTube creatorsx-somehandle-001.mdfor X/Twitter creators
How to choose the slug
Use the first strong human-readable identifier available:
Document Slug,Slug, orFile Slugfield if it exists- For YouTube creators: extract the handle from
YouTube URLand prefixyt- - Otherwise use the primary text label, such as:
TitleChannel NameCreator NameFull NameNameCompany NameDeal NameCase NumberInvoice Number
Examples:
https://www.youtube.com/@MikeMurphy->yt-mikemurphy-001.mdCreator Name = Jane Smith->jane-smith-001.mdCompany Name = Acme Corp->acme-corp-001.md
Default content model
Keep the entry document readable for humans and useful as an audit trail. A good default shape is:
# Jane Smith
## Summary
Current state of the entry in plain English.
## Notes
User-facing notes, drafts, follow-ups, or other long-form details.
## Activity Log
### 2026-03-30T12:34:56Z - Entry updated
- Changed `Status`: `New` -> `Qualified`
- Added note: Follow up on Thursday about pricingUpdate the current sections in place and append new log items instead of rewriting history.
NEVER do these
- Do NOT default to
{entry_id}.mdfor new documents - Do NOT confuse entry documents with the
Notesrichtext field - Do NOT create a markdown file without also inserting/updating the
documentstable row - Do NOT write human-readable files and leave them orphaned from metadata
Backward compatibility
Older workspaces may still have legacy {entry_id}.md files. Those can continue to work, but new entry documents should follow the human-readable naming convention above.
Creating One Entry Document
Create or repair the connected entry .md file whenever the user creates an entry, mentions notes on the row/entry, or makes a mutation and no document exists yet.
Example:
cat > {{WORKSPACE_PATH}}/marketing/influencer/yt-mikemurphy-001.md << 'MD'
# Draft Outreach Email
To: hello@mikemurphy.co
Subject: Partnership idea
Hi Mike,
I loved your AI Handyman breakdowns. DenchClaw is launching a workflow-native AI platform for builders who want serious control over execution, memory, and automation.
Would you be open to testing it and discussing a possible sponsorship?
MDThen register it:
INSERT INTO documents (title, file_path, parent_object_id, entry_id)
VALUES (
'Mike Murphy',
'marketing/influencer/yt-mikemurphy-001.md',
(SELECT id FROM objects WHERE name = 'influencer'),
'yt-mikemurphy-001'
)
ON CONFLICT (file_path) DO UPDATE
SET title = excluded.title,
parent_object_id = excluded.parent_object_id,
entry_id = excluded.entry_id,
updated_at = now();Batch Creating Entry Documents
When the user asks for docs for many entries, or asks to add notes/details across many entries, create/update markdown files plus documents rows. Only update the Notes field in SQL when they explicitly want that field changed too.
Workflow
- Query entries and the fields needed to build filenames/titles
- Derive a human-readable filename for each entry
- Write one
.mdfile per entry under the object directory - Insert/update one
documentsrow per file - Append or update each file's
## Notesand## Activity Logsections to capture the requested changes
Example: create docs for every influencer
duckdb {{WORKSPACE_PATH}}/workspace.duckdb -json "
SELECT
entry_id,
\"Creator Name\",
\"Channel Name\",
\"YouTube URL\"
FROM v_influencer
ORDER BY \"Creator Name\"
"Then for each row:
# Example row:
# entry_id = yt-mikemurphy-001
# youtube url = https://www.youtube.com/@MikeMurphy
cat > {{WORKSPACE_PATH}}/marketing/influencer/yt-mikemurphy-001.md << 'MD'
# Influencer Notes
## Outreach draft
...
MDRegister each file:
INSERT INTO documents (title, file_path, parent_object_id, entry_id)
VALUES (
'Mike Murphy',
'marketing/influencer/yt-mikemurphy-001.md',
(SELECT id FROM objects WHERE name = 'influencer'),
'yt-mikemurphy-001'
)
ON CONFLICT (file_path) DO UPDATE
SET title = excluded.title,
parent_object_id = excluded.parent_object_id,
entry_id = excluded.entry_id,
updated_at = now();Standalone Documents vs Entry Documents
Not every markdown file under an object directory is automatically an entry document.
- Entry document: has a corresponding
documentsrow withentry_idset - Standalone document under an object: has no
entry_idlink; it is just a nested document in that folder
Examples:
marketing/influencer/yt-mikemurphy-001.mdwithdocuments.entry_id = 'yt-mikemurphy-001'-> entry documentmarketing/influencer/outreach-playbook.mdwith noentry_id-> standalone object-level document
If a markdown file is meant to be the entry page, always register it in documents.
Sync on Entry Mutations
After any meaningful entry mutation:
- Resolve the linked entry document by
documents.entry_id - Create the document if it does not exist yet
- Update the relevant prose sections (
Summary,Notes, drafts, follow-ups, etc.) - Append a timestamped
Activity Logentry describing the delta
This applies to:
- field value changes
- explicit
Notesfield updates - status/owner/priority changes
- user requests to "add", "note", "log", "remember", or otherwise attach information to an entry
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.

