tutorial

📁 agenticnotetaking/arscontexta 📅 10 days ago
10
总安装量
10
周安装量
#28838
全站排名
安装命令
npx skills add https://github.com/agenticnotetaking/arscontexta --skill tutorial

Agent 安装分布

gemini-cli 10
codex 10
opencode 10
cursor 10
claude-code 9
openclaw 9

Skill 文档

Runtime Configuration (Step 0 — before any processing)

Read these files to configure domain-specific behavior:

  1. ops/derivation-manifest.md — vocabulary mapping, platform hints

    • Use vocabulary.notes for the notes folder name
    • Use vocabulary.note / vocabulary.note_plural for note type references
    • Use vocabulary.reduce for the extraction verb
    • Use vocabulary.reflect for the connection-finding verb
    • Use vocabulary.topic_map for MOC references
    • Use vocabulary.inbox for the inbox folder name
  2. ops/config.yaml — processing depth, domain context

If these files don’t exist, use universal defaults.

EXECUTE NOW

Target: $ARGUMENTS

  • If ops/tutorial-state.yaml exists and current_step <= 5: resume from saved step
  • If target is “reset”: delete ops/tutorial-state.yaml and start fresh
  • If no state file exists: begin new tutorial with track selection

START NOW. Reference below defines the flow.


Resume Detection

Read ops/tutorial-state.yaml. If it exists and tutorial is incomplete, display:

--=={ ars contexta : tutorial }==--

  Welcome back.
  Track: [track]     [step-progress] Step [N] of 5
  Resuming where you left off...

Skip to the saved current_step. Do NOT re-ask for track. If current_step > 5, tutorial is complete — offer to reset.

Progress indicator format:

  • Step 1 of 5: [=> ]
  • Step 2 of 5: [==> ]
  • Step 3 of 5: [===> ]
  • Step 4 of 5: [====> ]
  • Step 5 of 5: [=====>]

Track Selection (new tutorial only)

Display header, then use AskUserQuestion:

--=={ ars contexta : tutorial }==--

Which track fits your work best?

  (a) Researcher -- academic papers, domain
      research, literature processing

  (b) Manager -- meeting notes, strategy docs,
      decision tracking

  (c) Personal -- daily observations, goal
      setting, reflective journaling

Wait for response. Map a/b/c to researcher/manager/personal.

Write initial state to ops/tutorial-state.yaml:

track: [researcher|manager|personal]
current_step: 1
completed_steps: []
started: [ISO 8601 UTC]
last_activity: [ISO 8601 UTC]

Step Execution Pattern

Every step follows WHY / DO / SEE. Before each step show progress bar. After each step, update ops/tutorial-state.yaml (append to completed_steps, increment current_step, update last_activity).

Track Adaptation Reference

Each step adapts its language and examples to the track. The structure is identical; the content varies.

Step Researcher Manager Personal
Capture Claim from a paper Decision from a meeting Realization from a day
Discover Cross-paper connections Decision-stakeholder links Observation-goal patterns
Process Paper extraction Meeting note mining Journal crystallization
Maintain Stale claims, broken citations Orphaned decisions Disconnected reflections
Reflect Research graph growth Institutional memory Self-knowledge patterns

Step 1: Capture — Create your first {vocabulary.note}

WHY:

--=={ ars contexta : tutorial }==--
  [=>    ] Step 1 of 5 -- Capture

  Everything starts with a thought worth keeping.

Adapt the philosophy to the track:

Track WHY Framing
researcher “Research begins when you notice something worth remembering. A claim from a paper, a pattern across studies, a question that has not been asked. The system captures these as prose-sentence titles — each title is a proposition that reads naturally when linked to other notes.”
manager “Good decisions start with captured observations. A pattern from a meeting, a stakeholder concern, a strategic insight. The system turns these into connected notes where each title is a complete thought — not a label like ‘Q3 planning’ but a claim like ‘Q3 velocity depends on reducing context switching’.”
personal “Growth starts with noticing. A realization during a walk, a pattern in your week, a question about what matters. The system captures these as prose-sentence notes — each title is something you genuinely believe, like ‘morning routines work because they reduce decision fatigue’.”

DO:

Use AskUserQuestion with track-adapted prompt:

Track Prompt
researcher “Share a claim, observation, or question from your research. One sentence — something you genuinely want to remember and build on.”
manager “Share a decision, pattern, or insight from your work. One sentence — something worth tracking across meetings and projects.”
personal “Share a thought, observation, or realization. One sentence — something you genuinely want to remember.”

Transform input into a real {vocabulary.note}:

  1. Convert input to prose-as-title filename (lowercase, safe characters, full sentence)
  2. Create YAML frontmatter:
    ---
    description: [adds context beyond the title — scope, mechanism, or implication]
    topics: ["[[index]]"]
    created: [today's date]
    ---
    
  3. Write 2-3 sentences developing the thought
  4. Add Topics footer linking to the hub {vocabulary.topic_map}
  5. Write the file to {vocabulary.notes}/

SEE:

  Note created:
    {vocabulary.notes}/[filename].md

  Title: [the prose title]
  Description: [the description]
  Topics: [[index]]

  Notice how the title works as prose:
    "Since [[your note title]], the question
     becomes..."

  That is what makes notes linkable. The title
  IS the thought, expressed as a sentence.

Update state, then continue to Step 2.


Step 2: Discover — Find connections

WHY:

--=={ ars contexta : tutorial }==--
  [==>   ] Step 2 of 5 -- Discover

  A note alone is a file. Notes that connect
  become a knowledge graph.

Adapt to track:

Track WHY Framing
researcher “Research compounds when claims connect. A finding about methodology might extend a finding about tools. A pattern in one study might contradict a pattern in another. These connections are where insight lives — not in individual papers but in the relationships between ideas.”
manager “Organizational knowledge compounds when decisions connect. A hiring decision relates to a capacity concern. A strategy shift affects multiple projects. The connections reveal the system behind individual choices.”
personal “Self-knowledge compounds when observations connect. A morning routine insight might connect to an energy pattern. A relationship observation might extend a communication realization. The connections reveal what you actually believe.”

DO:

Use AskUserQuestion with track-adapted prompt:

Track Prompt
researcher “Share a second research insight — ideally one that connects to your first note, but any genuine claim works.”
manager “Share another work observation — ideally one that relates to the first, but any genuine insight works.”
personal “Share another thought — ideally one that connects to the first, but any genuine observation works.”

Create a second {vocabulary.note}. Then search for connections to the first {vocabulary.note}:

  1. Read both {vocabulary.note_plural}
  2. Apply the articulation test: can you complete “[[note A]] connects to [[note B]] because [specific reason]”?
  3. If genuine connection exists:
    • Add inline wiki link in one or both {vocabulary.note_plural}
    • Add relevant_notes entry with context phrase
  4. If no genuine connection exists:
    • Explain that forced connections are worse than none
    • “These notes do not connect yet, and that is fine. The graph grows over time.”

SEE:

If connected:

  Note created and connected:
    {vocabulary.notes}/[filename].md

  Connection:
    [[note A]] connects to [[note B]]
    because [your articulated reason]

  This is what /reflect does at scale --
  finding genuine connections across your
  entire graph.

If not connected:

  Note created:
    {vocabulary.notes}/[filename].md

  No genuine connection to your first note.
  That is fine -- forced connections pollute
  the graph. Real connections emerge as your
  graph grows.

Update state, then continue to Step 3.


Step 3: Process — Extract structured knowledge

WHY:

--=={ ars contexta : tutorial }==--
  [===>  ] Step 3 of 5 -- Process

  Raw material becomes structured knowledge
  through extraction. You mine for atomic
  insights, not summaries.

Adapt to track:

Track WHY Framing
researcher “A paper contains dozens of claims, but only some matter for your research. Extraction means identifying the propositions worth keeping — the specific claims, the methodological choices, the surprising findings — and turning each into its own note. This is /{reduce} in action.”
manager “Meeting notes and strategy docs contain buried insights. Extraction means finding the decisions, the assumptions, the risk factors — and giving each its own note that can be tracked and connected. This is /{reduce} in action.”
personal “Journal entries and daily notes contain unprocessed observations. Extraction means finding the insights, the patterns, the genuine realizations — and crystallizing each into a note that compounds with everything else. This is /{reduce} in action.”

DO:

Use AskUserQuestion with track-adapted prompt:

Track Prompt
researcher “Paste a short paragraph of raw material — notes from a paper, an article snippet, or research observations. Two to five sentences is enough.”
manager “Paste a short paragraph of raw material — meeting notes, a strategy snippet, or project observations. Two to five sentences is enough.”
personal “Paste a short paragraph of raw material — journal entry, conversation notes, or daily observations. Two to five sentences is enough.”

Extract 1-2 atomic insights:

  1. Identify propositions worth keeping (not summaries, not logistics)
  2. Apply selectivity: skip purely conversational content, temporary logistics, vague observations
  3. Check for connections to existing tutorial {vocabulary.note_plural}
  4. Create {vocabulary.note}(s) with proper schema
  5. Link where genuine connections exist

SEE:

  Extracted [N] insight(s) from your material:

  1. [title of extracted note]
     [connection status: linked to [[note]] | standalone]

  Raw material -> atomic {vocabulary.note_plural} -> connected graph.
  This is what /{reduce} does. It finds the
  propositions worth keeping and turns each into
  a composable {vocabulary.note}.

If nothing worth extracting:

  No atomic insights found in this material.
  That happens — not everything contains
  extractable propositions. The selectivity
  gate is working: better to skip than to
  create low-value {vocabulary.note_plural}.

Update state, then continue to Step 4.


Step 4: Maintain — Check vault health

WHY:

--=={ ars contexta : tutorial }==--
  [====> ] Step 4 of 5 -- Maintain

  A knowledge system that is not maintained
  decays. Health checks catch problems before
  they compound.

Adapt to track:

Track WHY Framing
researcher “Research graphs decay when citations break, claims go stale, and notes lose their connections. Health checks catch orphaned claims, missing descriptions, and broken links before they undermine your research integrity.”
manager “Organizational knowledge decays when decisions are orphaned, links break, and notes lose context. Health checks catch these before they undermine institutional memory.”
personal “Personal knowledge decays when reflections are disconnected, descriptions are vague, and patterns are missed. Health checks catch these before insights are lost.”

DO:

No AskUserQuestion. Run automated mini health check on tutorial {vocabulary.note_plural}:

  1. Description check: Does every {vocabulary.note} have a description field? Does the description add info beyond the title?
  2. Link check: Do all wiki links resolve to existing files?
  3. {vocabulary.topic_map} check: Does every {vocabulary.note} appear in at least one {vocabulary.topic_map}’s Topics footer?
  4. Orphan check: Does any {vocabulary.note} have zero incoming links?
  5. Connection density: How many wiki links per {vocabulary.note}?

For each check, report PASS or WARN with specifics.

SEE:

  Health check on your [N] tutorial {vocabulary.note_plural}:

  | Check              | Status | Detail              |
  |--------------------|--------|---------------------|
  | Descriptions       | PASS   | All notes described |
  | Links              | PASS   | No broken links     |
  | {vocabulary.topic_map} membership | WARN   | [note] not in MOC   |
  | Orphan risk        | PASS   | All notes connected |
  | Connection density | PASS   | Avg [N] links/note  |

  This is what /health does at scale. It catches
  problems automatically so the graph stays
  healthy as it grows.

If warnings found, fix them automatically (add missing {vocabulary.topic_map} links, improve descriptions) and explain what was fixed.

Update state, then continue to Step 5.


Step 5: Reflect — Review what you built

WHY:

--=={ ars contexta : tutorial }==--
  [=====>] Step 5 of 5 -- Reflect

  Step back and see the system you started
  building. A few notes are a beginning.
  The question is what comes next.

Adapt to track:

Track WHY Framing
researcher “You have the beginning of a research graph. Every paper you process, every claim you extract, every connection you find makes the graph more valuable. The compound effect means note 100 is worth more than note 1 because it has 99 potential connections.”
manager “You have the beginning of organizational memory. Every meeting processed, every decision tracked, every connection found makes the system more valuable. Institutional knowledge stops living in people’s heads and starts living in the graph.”
personal “You have the beginning of a self-knowledge system. Every observation captured, every pattern named, every connection found makes the system more valuable. You start seeing yourself through accumulated evidence, not just today’s feeling.”

DO:

Display vault state summary:

  What you built:

  {vocabulary.note_plural}: [N]
  Connections: [M] wiki links
  {vocabulary.topic_map_plural}: linked to [[index]]

  Your graph so far:
    [[note 1]] ----> [[note 2]]
         \               |
          '-> [[note 3]] -'

(Simple ASCII graph showing actual connections between the tutorial {vocabulary.note_plural}.)

Then show methodology awareness:

Your system also knows about itself:
  ops/methodology/   Your system's self-knowledge
  /ask [question]    Ask the research behind your
                     system's design

Try: /ask "why does my system use [relevant feature]?"

Then use AskUserQuestion:

“What would you like to work on next? You can:\n\n (a) Capture more thoughts (just tell me)\n (b) Process raw material (/{reduce} [paste or file])\n (c) Explore your system (/next)\n (d) Learn more about a specific command (/help [command])”

This is the handoff to productive use. Do not process the response — just acknowledge their choice and point them in the right direction.

SEE:

--=={ ars contexta : tutorial }==--

  [======] Complete

  You built a working knowledge graph in five
  steps. Every {vocabulary.note} you add from here
  compounds the value of what already exists.

  Quick reference:
    /ask [question]     Query your graph
    /learn [topic]      Research and grow
    /{reduce} [source]  Extract insights
    /{reflect}          Find connections
    /health             Check system health
    /next               What to do next
    /help               Full command guide

Completion

After step 5, write final state:

track: [track]
current_step: 6
completed_steps: [1, 2, 3, 4, 5]
started: [original timestamp]
last_activity: [now]
completed: [now]

State Persistence

After EVERY step, write to ops/tutorial-state.yaml. Non-negotiable — the tutorial must resume across sessions.

Format:

track: [researcher|manager|personal]
current_step: [1-6, where 6 = complete]
completed_steps: [array of completed step numbers]
started: [ISO 8601 UTC]
last_activity: [ISO 8601 UTC]
completed: [ISO 8601 UTC, only when done]

Session-start integration: If state exists and incomplete, the session-start hook should surface: “You have an unfinished tutorial (step N of 5). Resume with /tutorial.”

Quality Principles

Learn by doing. Every step creates real content in the vault. No hypothetical examples. The {vocabulary.note_plural} created during the tutorial are real {vocabulary.note_plural} that persist and compound with future content.

WHY before HOW. Every step explains why this matters before asking the user to do anything. Understanding motivation prevents the tutorial from feeling like a checklist.

Genuine, not forced. If the user’s input does not produce a meaningful connection, say so. Do not fake connections to make the tutorial feel successful. Honesty about when connections exist (and when they do not) teaches the right mental model.

Track-adapted, not track-locked. The track changes the examples and language, not the structure. A researcher and a personal user go through the same five steps with different framing.

Progressive complexity. Step 1 is trivially easy (share a thought). Step 5 requires understanding the system. Each step builds on the previous one. No step requires knowledge the tutorial has not yet provided.

Edge Cases

User pastes nothing in Step 3: Offer a pre-written example paragraph appropriate to their track. “Here is a sample you can use to see how extraction works:”

User wants to skip a step: Allow it. Update state to mark the step as skipped (not completed). The tutorial should not feel like a gate.

User re-runs /tutorial after completion: Show completion status and offer reset. “Your tutorial is complete. Run /tutorial reset to start fresh.”

User input is too short (single word): Gently expand. “Can you develop that into a full sentence? The system works best with complete thoughts — for example, instead of ‘meetings’ try ‘weekly meetings lose value when action items are not tracked’.”