archived/skills/garden/SKILL.md
Incremental PKM maintenance - weeding, pruning, linking, consolidating. Tends the knowledge base bit by bit.
npx skillsauth add nicsuzor/academicops gardenInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Tend the personal knowledge base incrementally. Small regular attention beats massive occasional cleanups.
| Activity | What to Do | | -------------- | --------------------------------------------------- | | Lint | Validate frontmatter structure and YAML syntax | | Weed | Remove dead links, outdated content, duplicates | | Prune | Archive stale notes, trim bloated files | | Compost | Merge fragments into richer notes | | Cultivate | Enrich sparse notes, add context | | Link | Connect orphans, add missing [[wikilinks]] | | Map | Create/update MoCs for navigation | | DRY | Remove restated content, replace with links | | Synthesize | Strip deliberation artifacts from implemented specs |
Validate frontmatter structure and YAML validity. Uses scripts/lint_frontmatter.py.
uv run python $AOPS/aops-tools/skills/garden/scripts/lint_frontmatter.py <path> [--recursive] [--fix] [--errors-only]
What it checks:
| Code | Severity | Issue |
| ----- | -------- | ----------------------------------------------------- |
| FM003 | error | Opening --- not on its own line (e.g., ---title:) |
| FM005 | error | Missing closing --- delimiter |
| FM008 | error | Invalid YAML syntax |
| FM009 | warning | Missing identifier (id/task_id/permalink) |
| FM010 | warning | Missing title field |
Common YAML issues requiring manual fix:
title: [Learn] something - brackets parsed as YAML array; quote the titlealiases: [x] followed by - x - conflicting YAML syntax[[link|alias]] can break YAML parsingUsage:
# Scan for issues
uv run python lint_frontmatter.py data/tasks/ --recursive --errors-only
# Fix delimiter issues automatically
uv run python lint_frontmatter.py data/tasks/inbox/ --fix
Health check. Count orphans, broken links, stale content, sparse notes, duplicates, orphan implementation docs.
Orphan Implementation Doc Detection:
Files in experiments/ that describe features with existing specs should be synthesized, not left as separate files. Scan identifies these:
$AOPS/experiments/*.mdspecs/ filenames and contentNote: Per AXIOM #28, episodic observations go to tasks, not local files.
Fix broken [[wikilinks]], remove dead references, flag duplicates.
Archive stale sessions (>30 days), compress verbose notes, update temporal metadata.
Connect orphans and enforce semantic link density per [[HEURISTICS.md#H34]].
What to check:
Detection process:
[[meetings]])?mcp__memory__retrieve_memory on file titles - if memory returns "related" files that don't link, flag themFix process:
Add missing frontmatter, expand sparse notes, improve titles for searchability.
Merge notes on same topic, extract patterns from logs into learning files.
Create missing folder/folder.md MoCs, update stale MoCs.
Find restated content that should be links. See DRY Enforcement below.
De-temporalize content: strip deliberation artifacts from specs, and delete/consolidate agent-generated temporal logs. See [[HEURISTICS.md#H23]] and [[AXIOMS.md#13]] (Trust Version Control).
Spec Index Maintenance:
After synthesizing any spec, ensure specs/specs.md is updated:
What's SACRED (never touch):
What can be de-temporalized (agent-generated cruft):
Detection patterns:
status: Implemented containing ## Options or ## AlternativesWorkflow for specs:
Workflow for temporal logs:
Does NOT delete user content - only agent-generated temporal records whose value is now in version control.
Problem: Content copied from core docs (AXIOMS, ACCOMMODATIONS, HEURISTICS) into other files instead of linking. Creates maintenance burden and drift.
Detect restated content:
Example violation (from a spec file):
**Communication Guidelines** (from [[ACCOMMODATIONS.md]]):
- Match user's preparation level...
- Proactive action: Don't ask permission...
Fix: Remove the restated content entirely. The framework already loads ACCOMMODATIONS.md via hooks - no need to repeat or even link unless critically specific to this context.
Rule: Core docs (AXIOMS, ACCOMMODATIONS, HEURISTICS, RULES) apply everywhere implicitly. Don't restate. Don't even link unless the specific section is uniquely relevant.
Session length: 15-30 minutes max. Gardening is sustainable when light.
| Area | Focus |
| ----------- | -------------------------- |
| projects | Project documentation |
| sessions | Session logs |
| tasks | Task tracking |
| archive | Historical content |
| [project] | Specific project subfolder |
Default: highest-activity areas (recent modifications).
| Metric | Target | | ----------------------------------------- | ----------- | | Frontmatter errors | 0 | | Orphan rate | <5% | | Link density | >2 per note | | Broken links | 0 | | MoC coverage | >90% | | DRY violations | 0 | | Implemented specs with deliberation cruft | 0 |
## Relations or 'references' boilerplate sections → Remove entirelyProblem: Individual session files like "Framework Logger Agent - First Production Use.md" or "ZotMCP Implementation Session 2025-11-22.md" duplicating what daily logs capture.
Why it's wrong:
What to keep:
YYYYMMDD-daily.mdclaude/*.md (machine-generated, useful for analysis)What to delete:
If valuable patterns exist: Extract to HEURISTICS.md or create a task via mcp__plugin_aops-core_tasks__create_task(), then delete the session log.
data-ai
Canonical session close — commit, push, PR, release_task, reflection blocks, handover. Use /dump for emergency bail (no commit/PR/reflection).
data-ai
Emergency session bail — fast resume task + short handover, no commit/PR/reflection. For when you (or the user) need a clean context now. Use /end-session for canonical close.
data-ai
Daily note lifecycle — compose and maintain a factual daily note. Reports the state of the day; does not prioritise or recommend. SSoT for daily note structure.
testing
Launder supervisor/worker task-log output into a Nic-facing narrative — what happened, where things are headed, and what (if anything) is genuinely his to decide. Never relays raw process detail (worker IDs, thread pointers, log paths) or verbatim task-log stream-of-consciousness.