mindos-views
Skill705 starsChanged 4 days agoMITView on GitHub
Manage shared local people and project tasks, generate reusable tables or boards, and compose/customize multi-source MindOS work pages with isolated custom HTML. Use when the user asks to maintain contacts, follow-ups or tasks, build a personal dashboard, or adjust a page with AI.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- find-skillsSkill
- mindos-maxSkill
- mindos-max-zhSkill
- mindosSkill
- mindos-zhSkill
- plugin-core-builtin-migrationSkill
- project-wikiSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Call mindos_views_describe and require capabilityVersion: 1.
- Very specific: line 11
Read the existing views and collections first.
- Very specific: line 16
Read back after saving and report the actual source path, view URL and committed result.
- Very specific: line 44
Call mindos_pages_preview({expectedRootId,spec}) and inspect block errors/limits.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
MindOS shared work views
Use the mindos_views_* tools for records/single-source views and mindos_pages_* for multi-source work pages. If MCP is unavailable, use mindos views with a JSON file or stdin. Never bypass this workflow by editing the registry, CSV, or Markdown directly. The same runtime, root and original files are shared by Codex, Claude Code and the human UI.
- Call
mindos_views_describeand requirecapabilityVersion: 1. If unavailable, run the packaged setup skill. Never installlateston each session or create a second library to fix a connection. - Read the existing views and collections first. Reuse a matching collection. Creation requires a user-requested folder and an operation UUID; choose
peopleortasks, andneworexisting. Do not automatically migrate arbitrary CSV or TODO.md. - Read current records and schema before editing. Keep
rootId, record source revision, schema revision, collection ID, record ID and a fresh UUID for each intended mutation. Never use row position as identity. Forward all expected revisions. For task creation, include the collection file revision; for a new person, omit the content revision. - Use only supported actions:
record.create,record.update,interaction.add,followup.update,schema.extend,operation.undo. For optional task text fields use a newx_key. Explain the new field and empty initial values before the user-authorized change. Preserve unknown/private content; structured read is intentionally a field projection, not all source text. - To generate a UI, use the current field catalogue and construct a small ViewSpec:
specVersion: 1,collectionId,layout,fields, optionalsort,filter.all,labels, andactions. Layouts:list-detail,table,board; board groups taskstatus. For a ViewSpec, never generate HTML, React, JavaScript, CSS, SQL, URLs or executable actions; custom HTML belongs only in a PageSpec html block below. Labels are text. Dates use YYYY-MM-DD. Filters have at most 10 conditions and sort at most 2 fields. - Example requests: “按状态分组显示项目待办,隐藏已完成” → board/groupBy status/filter neq done; “按姓名排序的人脉表格” → table/name, background, focus/sort name asc. Call preview first and show its URL. Save if the user already authorized the adjustment; otherwise let them inspect the preview. Use expectedViewVersion when replacing a saved view.
copy,restore,removechange views only; removing never deletes original records. - Read back after saving and report the actual source path, view URL and committed result. URLs returned by tools are relative to the connected MindOS origin;
mindos views open <view-id>validates and opens them. Never put bearer tokens into URLs. - On conflict, preserve the intended edit, re-read and compare; do not silently retry with a fresh revision. On timeout, query
mindos_views_readwith the SAME operationId; retry the IDENTICAL request. Never change input under the same ID. A successful receipt confirms that operation, not that later edits are absent. Undo updates only while the source still matches the saved after revision; creation cannot be undone.
CLI examples (JSON output):
mindos views doctor
mindos views list
mindos views describe c-collection-id
mindos views read c-collection-id
mindos views create --input request.json
mindos views mutate --input request.json
mindos views preview --input request.json
mindos views save --input request.json
mindos views operation operation-uuid
mindos views open v-view-idAll write JSON includes expectedRootId; mutation/create/save includes operationId. A server failure is not permission to write files directly. The plugin adds no model account and does not send messages or publish content. It cannot isolate a malicious local agent that already has filesystem access.
Composable work pages
For a dashboard, combined project page or a custom webpage, require describe.pages.specVersion: 1. Discover source IDs with mindos_views_read and existing pages with mindos_pages_read. Reuse the intended page instead of creating another navigation entry.
- A PageSpec is
{specVersion:1,title,description?,layout:{columns:1|2,density:"comfortable"|"compact"},blocks:[...]}. Each block has a stableid,title, andkind(tasks,people,notes,summary,html). At most12 blocks, 128KiB total. Use real discovered IDs. collectionIdbinds a source directly;viewIdexplicitly inherits saved fields/filters/actions and must not broaden them. Optionalfields,filter,layout, andlimitcontrol presentation. Notes bind explicit relativefolderorpaths. Keep private/unknown source content intact. Do not infer Studio Project identity from a task-folder name.- Preserve unchanged blocks and IDs when editing. Preserve
locked:trueblocks unless the user explicitly requests unlocking/changing them. When the user selects one block, change only that block. - Call
mindos_pages_preview({expectedRootId,spec})and inspect block errors/limits. Previews do not persist or enter navigation. Then, when authorized,mindos_pages_save({action:"save",expectedRootId,operationId,expectedVersion,spec,pageId?}); use version0 for a new page and the current version for an existing page. Read back and return/studio/pages/<pageId>on the connected origin. - Restore layout with
mindos_pages_save({action:"restore",expectedRootId,operationId,pageId,expectedVersion,restoreVersion}). Remove only its entry withaction:"remove". Neither operation restores/deletes underlying task or person data. On uncertainty retry the identical page request/operationId; do not query the record-operation receipt endpoint for a page operation. On conflict reread and compare, never silently overwrite. - CLI equivalents are
mindos views page.list,page.read <page-id>,page.preview --input request.json,page.save --input request.json,page.restore --input request.json,page.remove --input request.json, andpage.open <page-id>.
Isolated custom web block
Set kind:"html" with an html string and optional collection binding. Static HTML/CSS is supported. Ordinary scripts, inline event handlers, CDN imports, arbitrary React execution, networking and DOM APIs are unavailable. For dynamic content use <script type="mindos/page">…</script> running in an isolated worker. Globals: data={records:[{id,fields}],fields,collection}, state, event (null or {type,id,value,dataset}), and render(html,nextState?). Example: render('<h2>'+data.records.length+' tasks</h2>'). Escape data strings before embedding them in HTML. Rendered output is sanitized.
Controls with id emit local worker events. data-mindos-action="task.complete" or "source.open" plus data-record-id="<real-id>" request host-validated actions. Never fabricate record IDs or bypass the host API. Use supplied CSS variables and responsive layouts. A custom page cannot access credentials or arbitrary files.
The external Agent can author and preview the PageSpec without another model account. The page UI's own AI adjustment and optional mindos views page.generate --input request.json use the user's configured MindOS provider, return an unsaved candidate, and require a usable configuration. Do not claim unsupported or failed generation succeeded.
Durable Studio project work
Require describe.projects before using project operations. Discover existing project identities through mindos_projects_read({}); read one with {projectId}. New Studio projects use stable UUID identities. Existing legacy Studio slugs remain supported. A name match never authorizes merging identities or relationships.
- Save explicitly intended relationships with
mindos_projects_write({action:"save",expectedRootId,operationId,expectedVersion,project:{id,title,goal,taskCollectionIds,personRefs}}). Use version 0 only for a new project. Each task collection has one project owner; people may participate in multiple projects. Link at most four task collections and forty people from at most four people collections. action:"open-page"with{projectId,expectedRootId}opens or creates that project's stable default work page and reconciles changed sources while retaining presentation. Return/studio/pages/<returned page.id>. Opening repeatedly does not create duplicates. Removing the default page lets a subsequent explicit open create a new default identity; the retired page is never resurrected.- PageSpec may contain
projectIdandprojectSources. Preserve both during layout/AI edits. The current project relationships determine data scope; changing page HTML cannot broaden it. Keep selected and locked regions stable. Project source changes and layout history are separate from source business data. - Record project communication with
action:"conversation",projectId,personRef,text, calendardate,expectedVersion(project),expectedRevisionandexpectedSchemaRevision(person),expectedRootId, andoperationId. Read revisions first. The server writes the original person's Markdown and adds a project marker; do not maintain another transcript file or tag private interactions automatically. Reuse the identical operation ID after an uncertain response, then read back. - CLI equivalents:
mindos views project.list,project.read <projectId>,project.save --input request.json,project.page <projectId> --input request.json,project.interact <projectId> --input request.json.
Project name, goal and relationships are in the current library. Existing WorkDir/Space/AI defaults remain browser configuration; do not claim those defaults have migrated or silently replace them. Project timelines are bounded and show only currently linked people; unlinking never deletes their original records.
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.

