agentCLAWHUBUnverified

doc-updates

Updates documentation after code changes with quality gates, slop detection, and accuracy checks Skill: doc-updates Owner: athola Summary: Updates documentation after code changes with quality gates, slop detection, and accuracy checks Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:20:16.228Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:40:20.663Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:57:14.019Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:05:10.289Z | user Release v1.9.14 v1.9.13 | 20

OpenClaw

Rank

62

Safety

84

Downloads

1.5k

Updated

Oct 10, 2026

Version

1.9.19

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 10, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 10, 2026
Adoption signal
1.5K downloadsadoption · observed Oct 10, 2026
Latest release
1.9.19release · observed Aug 26, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-sanctum-doc-updates
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-sanctum-doc-updates/snapshot"

Documentation

CLAWHUB

145,309 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: doc-updates
description: |
  Updates documentation after code changes with quality gates, slop detection, and accuracy checks
version: 1.9.8
triggers:
  - documentation
  - readme
  - adr
  - docstrings
  - writing
  - consolidation
  - debloat
  - code changes require corresponding doc updates
metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/sanctum", "emoji": "\ud83e\udd9e", "requires": {"config": ["night-market.sanctum:shared", "night-market.sanctum:git-workspace-review", "night-market.imbue:proof-of-work", "night-market.scribe:slop-detector", "night-market.scribe:doc-generator"]}}}
source: claude-night-market
source_plugin: sanctum
---

> **Night Market Skill** — ported from [claude-night-market/sanctum](https://github.com/athola/claude-night-market/tree/master/plugins/sanctum). For the full experience with agents, hooks, and commands, install the Claude Code plugin.


## Table of Contents

- [When to Use](#when-to-use)
- [Required TodoWrite Items](#required-todowrite-items)
- [Step 1: Collect Context](#step-1-collect-context-context-collected)
- [Step 2: Identify Targets](#step-2-identify-targets-targets-identified)
- [Step 2.5: Check for Consolidation](#step-25-check-for-consolidation-consolidation-checked)
- [Step 3: Apply Edits](#step-3-apply-edits-edits-applied)
- [Step 4: Enforce Guidelines](#step-4-enforce-guidelines-guidelines-verified)
- [Step 4.25: AI Slop Detection](#step-425-ai-slop-detection-slop-scanned)
- [Step 4.75: Sync Capabilities Documentation](#step-475-sync-capabilities-documentation-capabilities-synced)
- [Step 5: Verify Accuracy](#step-5-verify-accuracy-accuracy-verified)
- [Step 6: Preview Changes](#step-6-preview-changes-preview)
- [Exit Criteria](#exit-criteria)
- [Flags](#flags)


# Documentation Update Workflow

## When To Use

Use this skill when code changes require updates to the README, plans, wikis, or docstrings. Run `Skill(sanctum:git-workspace-review)` first to capture the change context.

### System Capabilities

The documentation update workflow includes several specialized functions. It identifies redundancy through consolidation detection and enforces directory-specific style rules, with strict limits for `docs/` and more lenient ones for the `book/` directory. The system also verifies the accuracy of version numbers and component counts and integrates with the LSP for semantic documentation verification in supported versions of Claude Code.

## When NOT To Use

- README-specific updates - use update-readme instead
- Complex multi-file consolidation - use doc-consolidation

## Required TodoWrite Items

1. `doc-updates:context-collected` - Git context + CHANGELOG review
2. `doc-updates:targets-identified`
3. `doc-updates:consolidation-checked` (skippable)
4. `doc-updates:edits-applied`
5. `doc-updates:guidelines-verified`
6. `doc-updates:slop-scanned` - AI marker detection via scribe
7. `doc-updates:plugins-synced` - plugin.json ↔ disk audi

_meta.json

{
  "ownerId": "kn7d107jg9jv602h9ytsegydq184a42s",
  "slug": "nm-sanctum-doc-updates",
  "version": "1.9.19",
  "publishedAt": 1787750416228
}

modules/accuracy-scanning.md

# Accuracy Scanning Module

Validate documentation claims against actual codebase state. Runs as Phase 5.5 before preview to catch stale version numbers, outdated counts, and broken references.

## Scan Types

### 1. Version Number Validation

Compares version references in documentation against `plugin.json` files.

**Patterns to detect:**
- `v1.2.3`, `version: 1.2.3`
- `Plugin Name (v1.2.3)`, `Plugin Name v1.2.3`
- Table cells with version numbers

**Validation:**
```bash
# Extract actual versions
for plugin in plugins/*/.claude-plugin/plugin.json; do
    jq -r '.name + " " + .version' "$plugin"
done

# Sample output:
# abstract 1.0.5
# sanctum 1.0.6
# scry 1.1.0
```

**Warning format:**
```markdown
| File | Claimed | Actual | Action |
|------|---------|--------|--------|
| docs/api-overview.md | abstract v2.1.0 | 1.0.5 | Update version |
| README.md | sanctum v3.0.0 | 1.0.6 | Update version |
```

### 2. Plugin Count Validation

Verifies claims like "13 plugins" against actual directory count.

**Patterns to detect:**
- "N plugins", "contains N plugins"
- Table rows claiming to list all plugins

**Validation:**
```bash
# Count plugin directories with valid plugin.json
ls -d plugins/*/.claude-plugin/plugin.json 2>/dev/null | wc -l
```

### 3. Skill/Command Count Validation

Verifies per-plugin statistics.

**Patterns to detect:**
- "X skills", "Y commands", "Z agents"
- API inventory tables

**Validation:**
```bash
# Count skills for a plugin
ls -d plugins/sanctum/skills/*/SKILL.md 2>/dev/null | wc -l

# Count commands
ls plugins/sanctum/commands/*.md 2>/dev/null | wc -l

# Count agents
ls plugins/sanctum/agents/*.md 2>/dev/null | wc -l
```

### 4. File/Path Reference Validation

Verifies that referenced paths exist.

**Patterns to detect:**
- Backtick paths: `` `plugins/sanctum/skills/doc-updates/SKILL.md` ``
- Relative paths in links: `[link](./modules/foo.md)`
- Configuration examples with paths

**Validation:**
```bash
# Check if path exists
test -e "$path" && echo "EXISTS" || echo "MISSING"
```

## Scan Algorithm

```python
def scan_for_accuracy(file_path: str, content: str) -> list[AccuracyWarning]:
    warnings = []

    # Load current plugin versions
    actual_versions = load_plugin_versions()

    # Find version references
    version_pattern = r'(\w+)[\s\(]v?(\d+\.\d+\.\d+)'
    for match in re.finditer(version_pattern, content):
        plugin_name = match.group(1).lower()
        claimed_version = match.group(2)

        if plugin_name in actual_versions:
            actual = actual_versions[plugin_name]
            if claimed_version != actual:
                warnings.append({
                    'type': 'version_mismatch',
                    'plugin': plugin_name,
                    'claimed': claimed_version,
                    'actual': actual,
                    'line': get_line_number(content, match.start())
                })

    # Find count claims
    count_pattern = r'(\d+)\s+(plugins?|skills?|commands?|agents?)'
  

modules/adr-patterns.md

# Architecture Decision Record (ADR) Patterns

## ADR Template Structure

Every ADR must follow a consistent Markdown template with these required sections:

### Required Sections

1. **Title**
   - Format: `ADR-{number}: {Brief Decision Description}`
   - Example: `ADR-001: Use PostgreSQL for primary data store`

2. **Status**
   - One of: Proposed, Accepted, Deprecated, Superseded
   - Include date when status changed

3. **Context**
   - Forces driving the decision
   - Constraints that must be satisfied
   - Prior art or existing patterns
   - Why this decision is needed now

4. **Decision**
   - The chosen option with clear justification
   - Specific implementation approach
   - Rationale for why this solves the context

5. **Alternatives Considered**
   - Other options evaluated
   - Why each alternative was rejected
   - Trade-offs between options

6. **Consequences**
   - Positive outcomes expected
   - Negative outcomes or limitations
   - Impact on other components or teams
   - Future implications

7. **Metadata**
   - Author(s)
   - Date created
   - Approvers (if required)
   - Links to related documents

## Status Flow

ADRs follow this lifecycle:

```
Proposed → Accepted → [Deprecated | Superseded]
```

- **Proposed**: Draft ADR under review
- **Accepted**: Decision approved and implemented
- **Deprecated**: No longer recommended but not replaced
- **Superseded**: Replaced by a newer ADR (reference the new ADR number)

## Immutability Rules

ADRs are treated like code:

1. **Draft during planning**: Create ADR before implementation begins
2. **Review via pull request**: ADRs go through same review process as code
3. **Immutable once accepted**: Never edit an accepted ADR's decision
4. **Supersede, don't modify**: Create new ADR to change direction

## Superseding an ADR

When replacing an existing decision:

1. Create new ADR with next sequential number
2. Reference the superseded ADR number in context
3. Explain what changed and why the shift occurred
4. Update old ADR status to "Superseded by ADR-{new-number}"
5. Add link in old ADR to new record

## Location Conventions

ADRs typically are in one of these locations:
- `wiki/architecture/`
- `docs/adr/`
- `architecture/decisions/`

Check project structure to determine the established location before creating ADRs.

## Best Practices

### Keep Focused
- One architectural decision per ADR
- Maximum 1-2 pages in length
- Don't combine multiple decisions

### Maintain Traceability
- Link to requirements documents
- Reference design documents
- Connect to related ADRs
- Include issue/ticket numbers

### Write Grounded Content
- Reference specific technologies, tools, or approaches
- Include concrete examples where helpful
- Avoid abstract language or filler
- Use imperative mood for clarity

### Review Checklist
- [ ] Single focused decision
- [ ] All required sections present
- [ ] Alternatives documented with rationale
- [ ] Consequences (both positive and negative) identified
- [ 

modules/capabilities-sync.md

# Capabilities Sync Module

Synchronizes plugin.json registrations with capabilities reference documentation.

## Purpose

Detects drift between:
- **Source of truth**: `plugins/*/.claude-plugin/plugin.json` files
- **Documentation**: `book/src/reference/capabilities-reference.md` and related files

## When Loaded

This module is loaded during Step 4.75 (after plugins-synced, before accuracy-verified).

## Sync Targets

| Source | Documentation Target |
|--------|---------------------|
| `plugin.json.skills[]` | `book/src/reference/capabilities-reference.md` (Skills table) |
| `plugin.json.commands[]` | `book/src/reference/capabilities-reference.md` (Commands table) |
| `plugin.json.agents[]` | `book/src/reference/capabilities-reference.md` (Agents table) |
| `hooks/hooks.json` | `book/src/reference/capabilities-reference.md` (Hooks table) |
| Plugin existence | `book/src/plugins/{plugin}.md` |
| Plugin in layer | `book/src/plugins/{layer}-layer.md` |
| Plugin in SUMMARY | `book/src/SUMMARY.md` |

## Detection Script

```bash
#!/bin/bash
# capabilities-sync-check.sh
# Run from repo root

echo "=== Capabilities Sync Report ==="
echo ""

# Temporary files for comparison
REGISTERED_SKILLS=$(mktemp)
DOCUMENTED_SKILLS=$(mktemp)
REGISTERED_COMMANDS=$(mktemp)
DOCUMENTED_COMMANDS=$(mktemp)
REGISTERED_AGENTS=$(mktemp)
DOCUMENTED_AGENTS=$(mktemp)

# Extract registered skills from plugin.json files
for pjson in plugins/*/.claude-plugin/plugin.json; do
  plugin=$(basename $(dirname $(dirname "$pjson")))
  jq -r --arg p "$plugin" '.skills[]? | sub("^\\./skills/"; "") | "\($p):\(.)"' "$pjson" 2>/dev/null
done | sort -u > "$REGISTERED_SKILLS"

# Extract documented skills from capabilities-reference.md
grep -E "^\| \`[a-z-]+\` \|" book/src/reference/capabilities-reference.md 2>/dev/null | \
  sed -n '/All Skills/,/All Commands/p' | \
  grep -E "^\| \`" | \
  awk -F'|' '{gsub(/[`\[\] ]/, "", $2); gsub(/.*\(\.\.\/plugins\//, "", $3); gsub(/\.md\).*/, "", $3); print $3":"$2}' | \
  sort -u > "$DOCUMENTED_SKILLS"

# Extract registered commands
for pjson in plugins/*/.claude-plugin/plugin.json; do
  plugin=$(basename $(dirname $(dirname "$pjson")))
  jq -r --arg p "$plugin" '.commands[]? | sub("^\\./commands/"; "") | sub("\\.md$"; "") | "/\($p):\(.)"' "$pjson" 2>/dev/null
done | sort -u > "$REGISTERED_COMMANDS"

# Extract documented commands
grep -E "^\| \`/" book/src/reference/capabilities-reference.md 2>/dev/null | \
  sed -n '/All Commands/,/All Agents/p' | \
  grep -E "^\| \`/" | \
  awk -F'|' '{gsub(/[`\[\] ]/, "", $2); gsub(/ /, "", $3); print $2}' | \
  sort -u > "$DOCUMENTED_COMMANDS"

# Extract registered agents
for pjson in plugins/*/.claude-plugin/plugin.json; do
  plugin=$(basename $(dirname $(dirname "$pjson")))
  jq -r --arg p "$plugin" '.agents[]? | sub("^\\./agents/"; "") | sub("\\.md$"; "") | "\($p):\(.)"' "$pjson" 2>/dev/null
done | sort -u > "$REGISTERED_AGENTS"

# Extract documented agents
grep -E "^\| \`[a-z-]+\` \|" book/src/reference/capabiliti
Github ReposUpdated 17h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/athola/skills/nm-sanctum-doc-updates",
      "sourceUrl": "https://clawhub.ai/athola/skills/nm-sanctum-doc-updates",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T11:09:54.927Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-sanctum-doc-updates/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-sanctum-doc-updates/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T11:09:54.927Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.5K downloads",
      "href": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceUrl": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T11:09:54.927Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.9.19",
      "href": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceUrl": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-26T13:20:16.228Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-sanctum-doc-updates/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-sanctum-doc-updates/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.9.19",
      "description": "Release v1.9.19",
      "href": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceUrl": "https://clawhub.ai/athola/nm-sanctum-doc-updates",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-26T13:20:16.228Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to doc-updates and adjacent AI workflows.