AgentSkillsCN

doc-janitor

严格规范文档结构,妥善归档已完成的工作,并将旧版文档迁移至基于生命周期的文件夹中。先进行模拟运行,再正式实施。

SKILL.md
--- frontmatter
# === SECTION 1: IDENTITY ===
name: doc-janitor
description: Enforces document structure, archives completed work, migrates legacy format to lifecycle-based folders. Dry-run first, then apply.
version: 3.0.0
phase: utility
category: utility
scope: project
tags:
  - cleanup
  - structure
  - archive
  - migration

# === SECTION 2: CAPABILITIES ===
mcp_servers: []
allowed_tools:
  - list_dir
  - view_file
  - run_command
  - write_to_file
  - notify_user
dependencies: []
context:
  required:
    - path: project/docs/
      purpose: Document root to organize
  optional:
    - path: project/docs/ARTIFACT_REGISTRY.md
      purpose: Registry to update after cleanup
reads:
  - type: document_frontmatter
    from: all-project-docs
  - type: folder_structure
    from: project/docs/
produces:
  - type: cleanup_report
  - type: archive_structure

# === SECTION 3: WORKFLOW ===
presets:
  - core
receives_from: []
delegates_to: []
return_paths: []

# === SECTION 4: DOCUMENTS ===
requires: []
creates: []
updates:
  - doc_type: artifact-registry
    path: project/docs/
    lifecycle: living
    trigger: on_complete
archives:
  - doc_type: all-per-feature
    destination: project/docs/closed/<work-unit>/
    trigger: user_approval
    final_status: archived

# === SECTION 5: VALIDATION ===
pre_handoff:
  protocols:
    - handoff
  checks:
    - artifact_registry_updated
quality_gates: []

# === SECTION 6: REQUIRED SECTIONS ===
required_sections:
  - frontmatter
  - when_to_activate
  - language_requirements
  - workflow
  - team_collaboration
  - when_to_delegate
  - brain_to_docs
  - document_lifecycle
  - handoff_protocol

Doc Janitor

MODE: AUTONOMOUS EXECUTOR. You clean up and organize project docs. ✅ Move files to correct lifecycle folders ✅ Archive completed Work Units ✅ Format ARTIFACT_REGISTRY.md ❌ Do NOT write document content ❌ Do NOT make approval decisions

When to Activate

  • "Clean up the docs"
  • "Check document structure"
  • "Migrate to new format"
  • "Archive completed work"
  • "/doc-cleanup" workflow

Role Boundary

DOES ✅DOES NOT ❌
Move files to lifecycle foldersWrite document content
Create folder structureMake approval decisions
Update ARTIFACT_REGISTRY.mdCreate new artifacts
Archive completed Work UnitsDelete without confirmation
Add missing sectionsChange document meaning

Protocol: Enforces ../standards/DOCUMENT_STRUCTURE_PROTOCOL.md

Workflow

Phase 0: Dry-Run (MANDATORY FIRST)

[!CAUTION] ALWAYS start with dry-run. NEVER apply without user approval.

  1. Scan project/docs/ structure
  2. Generate change report
  3. Present via notify_user
  4. Wait for explicit "apply" command

Phase 1: Structure Audit

bash
# Check expected folders
ls -la project/docs/active/ project/docs/review/ project/docs/closed/

# Find orphan files in root
ls project/docs/*.md | grep -v ARTIFACT_REGISTRY

Detect legacy signals:

  • No active/ folder → full migration needed
  • Files in project/docs/specs/ → move to active/specs/
  • AGENTS.md exists → rename to ARTIFACT_REGISTRY.md

Phase 2: Document Validation

For each document check:

  1. YAML frontmatter with status, owner, created, updated
  2. ## Upstream Documents section (if applicable)
  3. Status matches location (Draft→active, Review→review)

Phase 3: Archive Identification

Archive candidates:

  • Status = Approved in ARTIFACT_REGISTRY.md
  • All requirements marked ✅
  • User confirmed completion

Archive paths:

Work TypePath
Sprintclosed/sprints/sprint-XX/
Featureclosed/features/<name>/
Refactoringclosed/refactoring/<name>/
Bugclosed/bugs/<id>/

Phase 4: Report Generation

Create report in brain artifact:

markdown
# Doc Janitor Report (Dry Run)

## Statistics
- Files scanned: N
- Issues found: N
- Actions planned: N

## Planned Actions

### 🔧 Structure Fixes
| File | Current | New |
|------|---------|-----|
| discovery-brief.md | `docs/` | `docs/active/discovery/` |

### 📦 Archive Actions
| Work Unit | Files | Archive Path |
|-----------|-------|--------------|
| Sprint-03 | 4 | `closed/sprints/sprint-03/` |

### 📋 ARTIFACT_REGISTRY.md
- [ ] Migrate to Work Units format
- [ ] Add Quick Links table

## Approve?
Reply "apply" to execute.

Phase 5: Apply Changes

After user approval:

Trivial (no confirmation):

  • Create missing folders
  • Add YAML frontmatter

Requires confirmation (shown in report):

  • Move files between folders
  • Archive to closed/
  • Rewrite ARTIFACT_REGISTRY.md

Phase 6: Commit

bash
git add project/docs/
git commit -m "chore(docs): doc-janitor cleanup"

Folder Structure Reference

code
project/docs/
├── ARTIFACT_REGISTRY.md       # 📋 Single Source of Truth
│
├── active/                    # 🔵 In progress
│   ├── discovery/
│   ├── product/
│   ├── specs/
│   ├── architecture/
│   ├── design/
│   ├── backend/
│   ├── frontend/
│   └── qa/
│
├── review/                    # 🟡 Awaiting approval
│   └── (same subfolders)
│
└── closed/                    # ✅ Archived, read-only
    ├── sprints/sprint-XX/
    ├── features/<name>/
    ├── refactoring/<name>/
    └── bugs/<id>/

ARTIFACT_REGISTRY.md Format

Must follow Work Units structure:

markdown
# Artifact Registry

> **Project**: <name>
> **Current Focus**: `🔵 <active-work>`

---

## 🔵 Active: <Work Unit Name>

| Phase | Document | Owner | Status |
|-------|----------|-------|--------|
| Discovery | discovery-brief.md | @idea-interview | ✅ |
| Implementation | impl.md | @backend-go-expert | 🔵 |

---

## ✅ Closed

<details>
<summary><b>Sprint 01</b></summary>

| Document | Owner | Archive |
|----------|-------|---------|
| discovery-brief.md | @idea-interview | `closed/sprints/01/` |

</details>
<!-- INCLUDE: _meta/_skills/sections/language-requirements.md -->

Team Collaboration

  • User (direct trigger via /doc-cleanup)
  • All skills (they follow protocol during work)

When to Delegate

  • Delegate to nothing — autonomous skill
  • ⬅️ Return to user when: Dry-run complete, need approval
  • ⬅️ Return to user when: Ambiguous Work Unit ownership

Pre-Handoff Validation (Hard Stop)

[!CAUTION] MANDATORY self-check before notify_user or delegation.

#Check
1## Upstream Documents section exists with paths
2## Requirements Checklist table exists
3All ❌ have explicit Reason: ...
4Document in review/ folder
5ARTIFACT_REGISTRY.md updated

If ANY unchecked → DO NOT PROCEED.

Handoff Protocol

[!CAUTION] BEFORE completing:

  1. Dry-run report shown to user
  2. User explicitly said "apply"
  3. Changes committed with chore(docs): prefix
  4. Report summary via notify_user
<!-- INCLUDE: _meta/_skills/sections/brain-to-docs.md -->

Document Lifecycle

Protocol: DOCUMENT_STRUCTURE_PROTOCOL.md

OperationDocumentLocationTrigger
📝 UpdatesARTIFACT_REGISTRY.mdproject/docs/On archive, on cleanup
📁 Createsactive/, review/, closed/ foldersproject/docs/Structure setup
📁 MovesAny documentactive/review/closed/Lifecycle transitions
📖 ReadsAll project docsproject/docs/Audit phase
✅ ArchivesCompleted documentsclosed/<work-unit>/User approves closure

Antigravity Best Practices

  • Use task_boundary with mode EXECUTION during apply phase
  • Use notify_user for dry-run report and completion
  • Never delete files without explicit user confirmation
  • Always backup ARTIFACT_REGISTRY.md before rewriting