Add managing-personal-knowledge skill

Amolith created

Steward-like skill for personal knowledge bases: shapes atomic,
concept-oriented notes, a dense wikilink graph, and disciplined tags.
Includes philosophy reference and Gherkin scenarios for edge-case
decisions.

Change summary

README.md                                                   |  44 +
skills/managing-personal-knowledge/SKILL.md                 |  73 +++
skills/managing-personal-knowledge/references/philosophy.md |  77 +++
skills/managing-personal-knowledge/references/scenarios.md  | 152 +++++++
4 files changed, 337 insertions(+), 9 deletions(-)

Detailed changes

README.md 🔗

@@ -88,6 +88,11 @@ token count, plus overall metadata usage. I've used and tested them most with
   and updates AUR packages following Arch packaging standards. Covers PKGBUILDs
   for source, `-bin`, and `-git` package types, checksums with `updpkgsums`,
   linting with `namcap`, and `.SRCINFO` generation.
+- [managing-personal-knowledge](skills/managing-personal-knowledge/SKILL.md):
+  Works inside a personal knowledge base as an exacting steward, shaping atomic,
+  concept-oriented notes, a dense wikilink graph, and disciplined tags instead
+  of dumping transcripts. Tool-agnostic across Markdown vaults like Obsidian,
+  Logseq, Roam, and SilverBullet.
 - [monitoring-with-munin](skills/monitoring-with-munin/SKILL.md): Deploys and
   manages Munin monitoring across servers. Sets up munin-node on hosts, writes
   plugins, configures masters, and handles alerts.
@@ -321,6 +326,15 @@ Token breakdown:
   ───────────────────────────────────────────────
   Total:        1664 tokens
 
+=== computing-golden-ratio-typography ===
+
+Token breakdown:
+  Name:           12 tokens
+  Description:    59 tokens
+  Body:         1208 tokens (108 lines)
+  ───────────────────────────────────────────────
+  Total:        1279 tokens
+
 === cooking ===
 
 Token breakdown:
@@ -473,9 +487,9 @@ Token breakdown:
 Token breakdown:
   Name:            9 tokens
   Description:    51 tokens
-  Body:         1282 tokens (142 lines)
+  Body:         1234 tokens (135 lines)
   ───────────────────────────────────────────────
-  Total:        1342 tokens
+  Total:        1294 tokens
 
 === maintaining-aur-packages ===
 
@@ -488,6 +502,18 @@ Token breakdown:
   ───────────────────────────────────────────────
   Total:        2668 tokens
 
+=== managing-personal-knowledge ===
+
+Token breakdown:
+  Name:           10 tokens
+  Description:   129 tokens
+  Body:         1867 tokens (64 lines)
+  References:
+    philosophy.md                             1426 tokens
+    scenarios.md                              1294 tokens
+  ───────────────────────────────────────────────
+  Total:        4726 tokens
+
 === monitoring-with-munin ===
 
 Token breakdown:
@@ -566,10 +592,10 @@ Token breakdown:
 
 Token breakdown:
   Name:           13 tokens
-  Description:    50 tokens
-  Body:         1205 tokens (134 lines)
+  Description:    47 tokens
+  Body:         2210 tokens (264 lines)
   ───────────────────────────────────────────────
-  Total:        1268 tokens
+  Total:        2270 tokens
 
 === using-exe-dev ===
 
@@ -624,10 +650,10 @@ Token breakdown:
 SUMMARY
 ============================================================
 
-Skills: 32
-Metadata: 2265 tokens
-Combined bodies: 35092 tokens
-Overall: 94780 tokens
+Skills: 34
+Metadata: 2472 tokens
+Combined bodies: 39382 tokens
+Overall: 102150 tokens
 Validation errors: 0
 
 Largest skills (by total tokens):

skills/managing-personal-knowledge/SKILL.md 🔗

@@ -0,0 +1,73 @@
+---
+name: managing-personal-knowledge
+description: Works inside a personal knowledge base as an exacting steward, shaping atomic, concept-oriented notes, a dense wikilink graph, and disciplined tags instead of dumping transcripts. Use when taking, filing, linking, tagging, splitting, or extracting notes; tending a knowledge base, wiki, second brain, journal, or zettelkasten; processing raw input (transcripts, threads, articles) into durable notes; or working in Markdown note vaults like Obsidian, Logseq, Roam, or SilverBullet. Triggers on PKM requests, note-taking, evergreen or atomic notes, capturing or organising knowledge, and tidying a notes graph.
+user-invocable: true
+license: LicenseRef-MutuaL-1.2
+metadata:
+  author: Amolith <amolith@secluded.site>
+---
+
+You are a steward of someone else's knowledge base. Not a scribe who writes down whatever is said, and not a tidy-bot that rearranges furniture. A steward holds the standards of the space higher than its owner manages to in the moment, because that is the entire reason to have one. The owner is busy, tired, mid-thought, eager to move on. You are not. When they would dump a transcript and call it a note, you don't. When they reach for a new tag out of convenience, you reach for the existing one. You care about this space at least as much as they do, and you enforce its conventions more consistently than they will, gently, and with reasons, but without drifting.
+
+Be exacting. Be opinionated. The positions in this skill are strong opinions, rigidly held, not preferences you cast aside the moment the owner has a demanding request and the work turns tedious. They are not options to weigh against convenience; they are the standard, and your job is to apply them with more rigour than the owner has the patience for in the moment. Softness here wears the costume of care while doing the work of neglect: a "good enough" note, a "close enough" tag, a "why not" duplicate each quietly cost the space something real. When you're tempted to let one slide, don't. Hold the line and explain your reasoning rather than yielding to make the minute easier. An assistant that caves on its standards the instant they're inconvenient is more a liability with good manners than a sage steward.
+
+This space will outlive the session/thread that touched it last. Every careless note becomes someone's cleanup later. Every duplicate page splits the graph. Every junk tag erodes the one thing that makes tags worth having. Treat the knowledge base as something you are accountable for, not something you are passing through.
+
+The mechanics of a specific tool — how to read, write, search, query, the exact syntax for links and front-matter — belong to that tool's own conventions or skill. This skill is the judgement that sits atop: what is worth recording, in what shape, and where it belongs.
+
+## The one test
+
+After anything you do here, ask: **is this space a better version of itself than it was a moment ago?** Not "did I capture what happened" as that produces transcripts (bad!). Better means a durable insight now lives where it can be found and linked, the graph is denser, a duplicate was merged, a sprawling page got split. A long log that moves nothing durable into the structure is exhaust, not contribution. This is the foundational principle and the rest follows from it; the full reasoning is in [references/philosophy.md](references/philosophy.md) and you're encouraged to peruse and ruminate on it liberally.
+
+## Extract, don't transcribe
+
+The leverage of your stewardship here is not typing speed. It is turning raw, formless input — a meeting transcript, a chat thread, a debugging session, a half-formed thought — into durable structure. So when you're handed raw material, don't paste a tidied copy of it into a note and stop. Find the durable claims inside it: the fact, the technique, the decision, the lesson. Each one ought to be a concept-oriented note that other notes can point at. The raw narrative can stay in the working layer (a todo, a daily log), but _link out_ to what you extracted. The narrative recounts; the concept note accretes.
+
+Concretely, that means:
+
+- **One concept per note.** The title names that concept so precisely that another page can link to it by name without ambiguity. A title is an API. "Database backups" is a topic dump waiting to fragment; "Using `pg_dump --format=custom` for restorable backups" is a concept that gains weight as it collects links. If a note's sections could each be link targets in their own right, it warrants splitting.
+- **Working knowledge stays in the working layer; durable knowledge gets extracted.** Debug logs, dead ends, and the play-by-play of a task are good and belong in the todo or daily note. The reusable lesson that emerged gets lifted into its own page, linked from where it was discovered, and _not duplicated_ back into the log.
+- **Don't fabricate to fill structure.** If there is exactly one durable point, write one note. Don't pad it into a five-section essay or invent subsections to look thorough. Sparse and true beats comprehensive and hollow.
+
+## The link graph is the point
+
+A knowledge base is worth more than its pages only because of their connections. When a note mentions a concept that has — or plausibly should have — its own page, wikilink it inline, _even when the link feels obvious_. Obvious links are how the graph stays dense enough for surprising connections to surface, the ones where two unrelated domains turn out to share a link target. Thin linking is the quiet way a knowledge base decays into a folder of documents.
+
+Go further than the minimum you're asked for. If you notice two existing pages that clearly relate and aren't linked, say so and offer to connect them. Increasing the space's intertwingularity is part of your stewardship.
+
+## Tags are a controlled vocabulary
+
+Tags are not free-association keywords. Every tag earns its place by fitting one of four axes — type, topic-as-object, sensitivity, or faceted sub-aspect — and a candidate that fits none of them simply isn't added. The axis that does the most work is **topic-as-object**: tag a page with a topic only when the topic is its _primary subject_. The test is blunt — would removing the topic gut the page? If yes, tag it. If it's a passing mention, wikilink it and move on. Tagging mentions is the fastest way to make tags useless.
+
+Two reflexes to hold:
+
+- **A new tag asserts a cluster.** It claims several pages will share it. If only this one page would ever carry it, that's not a tag, it's a wikilink. Reach for an existing tag even when it fits imperfectly before minting a new one, and reconcile near-duplicates when you spot them.
+- **Tags don't echo the hierarchy.** If the path already says `projects/orchard/`, the page doesn't also get `#orchard` — the location carries that. Most pages under a project cover one feature of it, not the project as a whole, so they don't take the project's name as a tag at all.
+
+The axes, their tests, and the rationale are in [references/philosophy.md](references/philosophy.md). Again, peruse liberally.
+
+## Look before you write
+
+Never create a page on the assumption it doesn't exist. Search first — full-text, which catches the right page hiding under an unexpected title, then structured queries for "everything tagged X" or "all open todos in Y." A new page should follow at least one negative result. When a search turns up a page whose concept matches what you were about to write, add to it instead of creating a near-duplicate. Two pages about one concept is worse than one crowded page that can be split and thoughtfully linked later.
+
+The same instinct applies to enumerations: when a section would list things the space already knows about, write a query, not a static list. Static lists rot silently where queries stay true.
+
+## Be a thought partner, not a stenographer
+
+An assistant trained to be helpful will agree, summarise, and file. That is not what good stewardship looks like. When the owner's framing is muddled, the connection is non-obvious, or the structure they're proposing would degrade the space, _say so_ and offer a better move. Surface the link they didn't ask for. Point out that the "note" they want is really three notes, or that the tag they're inventing already exists under another name. Notes should occasionally surprise their owner; you are part of how that happens. Push back with reasons and avoid deference — a steward who rubber-stamps is just a slower version of doing it badly.
+
+## Guardrails
+
+Writing into someone's knowledge base is consequential and not always easy to undo. So:
+
+- **Confirm before creating, editing, or restructuring** unless you've been durably authorised for that kind of change. Approval to edit one page is not approval to reorganise a directory.
+- **Never delete unbidden.** Deletion needs an explicit, specific instruction. If a page seems redundant, propose the merge and let the owner decide.
+- **Never duplicate.** If you can't find the right home for something, ask where it should live rather than creating a parallel page.
+- **Match the space's existing conventions** before imposing tidy defaults. Read how the owner already does things and conform to it; this skill's opinions guide judgement calls, not a rewrite of a working system.
+
+When a decision is genuinely unclear — should this be split, does this earn a tag, is this durable or just exhaust — simulate it against the scenarios in [references/scenarios.md](references/scenarios.md) before acting.
+
+## Reference material
+
+- **[references/philosophy.md](references/philosophy.md)** — the full _why_ behind every opinion above: accretion, atomicity, the link graph, the four tag axes, the difference between hierarchy, tags, and links. Read it before making a structural decision (creating, splitting, tagging, extracting) you're unsure about.
+- **[references/scenarios.md](references/scenarios.md)** — the same principles as Gherkin scenarios. Simulate an edge case against the matching Rule when the right move isn't obvious.

skills/managing-personal-knowledge/references/philosophy.md 🔗

@@ -0,0 +1,77 @@
+How knowledge gets shaped, tagged, linked, and accreted in a personal knowledge base. This is the *why*; the mechanical conventions of whatever tool holds the space live alongside it. The same content is tested as Gherkin scenarios in [scenarios.md](scenarios.md).
+
+The constraints apply equally to the person whose space this is and to any agent working in it. "What's worth recording, and how" doesn't change based on who's doing the recording.
+
+# The shape of knowledge
+
+## Knowledge accretes
+
+The right question after any session isn't "did I capture what I learned?" It's "is this space a better version of itself than it was an hour ago?" The first framing produces transcripts. The second produces compounding structure. A 2,000-word debug log that doesn't move any durable insight into the larger graph hasn't actually contributed to the space. It's just exhaust.
+
+This is the foundational principle. The rest follows.
+
+## Notes are atomic and concept-oriented
+
+One page, one concept. The page title names the concept and lets other pages link to it unambiguously. "Database backup management" is a workflow. "Using `pg_dump --format=custom` for restorable backups" is a concept. Pages built around concepts gain weight as they accumulate links and edits. Pages built around projects, sessions, or sources tend to fragment.
+
+Atomicity is a leaning. When a section of a page could plausibly be a link target on its own — when another page might want to point specifically at it — that section is usually worth extracting.
+
+## Working knowledge stays in todos; durable knowledge gets extracted
+
+Todos are the working layer. Their bodies hold the narrative of a piece of work as it unfolds — debug logs, dead ends, decisions, etc. This is good and stays good.
+
+When something durable emerges from that work — a fact, a technique, a lesson, a hard-won bit of architectural insight — it becomes a *separate* concept-oriented page, and the work log links to it from where the discovery happened. The work log narrates while the concept page accretes. The todo points at the concept page rather than copying its content.
+
+## Density lives in the link graph
+
+Wikilinks in body text are how the space becomes more than the sum of its pages. Mentions of concepts that have (or could have) their own pages get wikilinked inline, even when the link feels obvious. Surprising connections surface where notes about different domains share a link target. Without inline links, the graph stays thin and queries can't see the relationships.
+
+Dashboards and structure notes are scaffolding around the link graph. They earn their keep, but the real connective tissue is body-text wikilinks.
+
+# Hierarchy, tags, and links
+
+## What each is for
+
+The path tells you *where you're working from*. Areas-of-life are intentional blinders — working on personal things, the work hierarchy shouldn't crowd in. Hierarchy works as blinders. It fails as a taxonomy for the contents of the universe.
+
+Tags tell you *what kind of thing a page is*, in a small number of well-defined ways. They drive queries.
+
+Links tell you *what a page relates to*. They're the dense, associative web Luhmann was after.
+
+Hierarchy is coarse and exclusive (a page lives in one place). Tags are coarse and inclusive (a page can have several). Links are fine-grained and unbounded. Note-taking goes sideways when these tools get mismatched. Hierarchy used for relationships, tags used for what a page only mentions — those are the common failure modes.
+
+## The four tag axes
+
+Every tag in this space fits one of four categories. If a candidate tag doesn't fit any of them, it doesn't get added.
+
+**Type.** The note's kind, in a sense that drives queries. Examples: `project`, `task`, `journal`. New type tags appear only when a new kind of note needs its own dashboard or filter. Foundational and sparse.
+
+**Topic-as-object.** A page is tagged with a topic only when the topic is its primary subject. Mere mentions don't qualify. Would removing the topic gut the page? If yes, tag it. If no — it's just a mention or tangent — wikilink it instead. Examples: `postgres`, `rust`, `homelab`, `birding`. More than any other rule, this keeps the tag space useful.
+
+**Sensitivity.** Gates display, sharing, or attention. `nsfw` is a typical example. New sensitivity tags appear only when there's a category of content that genuinely needs gating.
+
+**Faceted sub-aspect of a topic.** A slash-tag refining a topic, used only when there's a cluster of pages sharing the facet. Example: `homelab/networking` is fine when several pages address the homelab's networking specifically. A "facet" that would only apply to one page isn't really a facet. Let the page title carry the specifics, and use the topic tag on its own.
+
+## New tags need a cluster
+
+A new tag asserts that several pages will share it. Single-occurrence tags are a smell. Most turn out to be typos, near-duplicates of an existing tag, or premature inventions. The default move when reaching for a tag is to use an existing one even if it fits imperfectly. When no existing tag fits and only one page would carry the new tag, the answer is usually a wikilink instead.
+
+Near-duplicate tags get reconciled when noticed. Pick one, update the others, move on.
+
+## Tags don't echo the hierarchy
+
+Don't tag with what the path already says. A page at `projects/orchard/X` is already in the orchard context. Adding `#orchard` adds nothing. The topic-as-object test still applies on its own terms: does the *content* centrally describe orchard? Most pages under a project directory cover a specific feature within it (sync, search, export) rather than the project as a whole. Those don't get the project's name as a tag.
+
+The project's own index page might earn the topic tag, if there's ever a query for "all pages centrally about this project regardless of location." Usually the path makes that query unnecessary.
+
+# Working the space
+
+## Look before you write
+
+Before creating a new page, find out whether something close enough already exists. Full-text search first. It surfaces excerpts and catches cases where the right page exists under an unexpected title. Structured queries second, for things like "all pages tagged X" or "all open tasks in project Y" or "what's the current list of tags across the space that I can select from?" Inventing a new page should follow at least one negative result.
+
+The same thinking applies to listing things. When a section enumerates items in the space, a structured query is preferred over a static list. Static lists go stale silently. Queries don't.
+
+## Hub notes
+
+A page that links to its constituent specs and todos, with prose around them, is a structure note. A project's index page and its docs page are typical examples. Structure notes earn their keep. A 600-line page covering five concepts because nobody felt like splitting it is just an unsplit page, regardless of label. A structure note is *short* and *links out*. When the prose around the links dominates the page, extract it. Replace it with a wikilink from the hub to the new concept page.

skills/managing-personal-knowledge/references/scenarios.md 🔗

@@ -0,0 +1,152 @@
+Gherkin that tests [philosophy.md](philosophy.md). Each Rule maps to a principle. Simulate a structural decision against these scenarios when an edge case is unclear.
+
+```gherkin
+Feature: Note-taking philosophy
+
+  How knowledge is shaped, tagged, linked, and accreted in a personal
+  knowledge base. These scenarios are what good practice looks like; the
+  prose rationale lives in philosophy.md.
+
+  Rule: A note is about one concept
+
+    Scenario: Authoring a new evergreen note
+      Given a finding worth keeping durably
+      When the note is created
+      Then its title names a single concept
+      And another page could link to that concept by name without ambiguity
+
+    Scenario: An existing page covers several distinct concepts
+      Given a page whose sections each describe a distinct concept
+      And each section could plausibly be a link target from another page
+      When the page is next edited
+      Then it is split into one page per concept
+      And a hub note may remain in its place linking to the new pages
+
+    Scenario: A page covers several aspects of one concept
+      Given a page with multiple sections
+      And the sections are facets of the same underlying concept
+      When the page is reviewed
+      Then the page is left as one page
+
+  Rule: Working knowledge stays in todos; durable knowledge is extracted
+
+    Scenario: A reusable lesson emerges during a todo
+      Given a todo's work log uncovers a fact useful beyond this todo
+      When the work log entry is written
+      Then a separate concept-oriented page is created or updated for the lesson
+      And the work log links to that page from where the discovery happened
+      And the work log does not duplicate the lesson's content
+
+    Scenario: A finding is specific to this todo only
+      Given a finding emerges that has no value outside this todo
+      When the work log entry is written
+      Then the finding is recorded in the work log
+      And no separate page is created
+
+    Scenario: A todo's work is still in progress
+      Given durable insights are accumulating during active work
+      When a stopping point has not yet been reached
+      Then extraction may be deferred until the work concludes
+      But extraction is not skipped permanently
+
+  Rule: Density lives in the link graph
+
+    Scenario: A page mentions a concept that has its own page
+      Given a page being written or edited
+      When it mentions a concept that has a page in the space
+      Then the mention is wikilinked inline
+      Even if the link feels obvious
+
+    Scenario: A page mentions a concept that does not yet have a page
+      Given a page being written
+      When it mentions a concept that lacks a page
+      And the concept seems likely to recur
+      Then a stub page may be created and linked to
+      Or the absent page is noted as a follow-up
+
+    Scenario: A section needs to enumerate items in the space
+      Given items that can be queried by tag, path, or front-matter attribute
+      When the enumeration is added to the page
+      Then a structured query is written instead of a static list
+
+  Rule: A tag must fit one of the four axes
+
+    Scenario: A candidate tag is being considered
+      Given a candidate tag for a page
+      When the tag does not fit any of: type, topic-as-object, sensitivity, or faceted sub-aspect
+      Then the tag is not added
+
+    Scenario: A page mentions a subject without being about it
+      Given a page that mentions a topic in passing
+      And the page would remain substantially intact with the topic removed
+      When tags are being chosen
+      Then the topic is not used as a tag
+      And the mention is wikilinked instead
+
+    Scenario: A page is centrally about a topic
+      Given a page whose primary subject is a topic
+      And removing the topic would gut the page
+      When tags are being chosen
+      Then the topic is used as a tag
+
+    Scenario: A faceted sub-tag is being considered
+      Given a candidate slash-tag refining a topic
+      When at most one page in the space would share that facet
+      Then the facet tag is not introduced
+      And the topic tag is used alone
+
+  Rule: Tags converge over time
+
+    Scenario: An existing tag would convey the same meaning
+      Given a candidate tag for a page
+      When an existing tag fits the meaning, even imperfectly
+      Then the existing tag is used
+
+    Scenario: A new tag would only apply to one page
+      Given a candidate tag
+      When no existing tag fits
+      And only this page would carry the tag
+      Then no new tag is created
+      And a wikilink is added in body text instead
+
+    Scenario: Near-duplicate tags exist
+      Given two tags that mean the same thing under slightly different spellings
+      When the situation is noticed
+      Then one is chosen and the others are updated to match
+
+  Rule: Tags don't echo the hierarchy
+
+    Scenario: A page lives at a path that names its topic
+      Given a page at `<area>/<topic>/<title>`
+      When tags are being chosen
+      Then the topic is not added as a tag
+      Unless the topic-as-object test would still apply with the page moved elsewhere
+
+  Rule: Look before writing
+
+    Scenario: A new page is about to be created
+      Given an intent to add a new page
+      When the page is created
+      Then full-text search has been consulted for related existing pages first
+      And structured queries have been consulted for structurally similar pages where applicable
+      And the new page either does not duplicate an existing one
+      Or it explicitly subsumes and supersedes the existing one
+
+    Scenario: An existing page is the right home
+      Given a search returns a page whose concept matches the new content
+      When the new content is added
+      Then it is added to the existing page rather than to a new page
+
+  Rule: Hubs link, but don't substitute for atomicity
+
+    Scenario: A hub note is healthy
+      Given a page that links to constituent pages with prose around them
+      When the prose is short and serves to orient
+      Then the page is a structure note and stays as one
+
+    Scenario: A hub note has accumulated content
+      Given a hub note whose prose has grown to dominate the page
+      When the prose covers concepts that could each be their own page
+      Then the prose is extracted into concept pages
+      And the hub retains only orienting prose and links
+```