feat(agents): add .DCP shorthand command and dcp skill
CI / frontend-quality (push) Canceled after 0s

.DCP = Document, Commit, Push — updates in-repo docs and .labyricorn
devlog records for recent milestones, validates, commits, and pushes
to origin/main. Skill defined at .agents/skills/dcp/SKILL.md.
Command documented in root AGENTS.md shorthand commands section.
This commit is contained in:
2026-08-24 19:57:30 -07:00
parent 7255ce0914
commit 7ad90d93a7
2 changed files with 164 additions and 1 deletions
+154
View File
@@ -0,0 +1,154 @@
---
name: dcp
description: >
Triggered by the user command ".DCP". Updates in-repo documentation and
.labyricorn devlog records to reflect recent work, then commits and pushes
all changes to origin/main (production). Run this skill whenever the user
issues ".DCP".
---
# DCP — Document, Commit, Push
The user command `.DCP` means: bring documentation and Labyricorn publishing
records up to date with the current state of the codebase, then commit
everything and push to production (`origin/main`).
Read this file fully before starting. Also read:
- `AGENTS.md` (root) — communication and authorization rules
- `.labyricorn/AGENTS.md` — publishing boundaries and content contract
- `.labyricorn/devlog/AGENTS.md` — devlog entry format and safety rules
- `.labyricorn/project/AGENTS.md` — project record rules
---
## Phase 1 — Orient
1. Run `git log --oneline -10` to see the most recent commits since the last
`.DCP` run (look for the previous "docs:" or "devlog:" commit to find the
boundary).
2. Run `git diff --stat HEAD` (or `git status`) to see any uncommitted changes.
3. Identify what changed: new features, bug fixes, refactors, renamed
files, config changes, dependency updates, etc.
4. Note today's date (`YYYY-MM-DD`) and the **full 40-character commit SHA**
of the most recent relevant commit (`git rev-parse HEAD`).
---
## Phase 2 — Update In-Repo Documentation
Update any documentation files that are stale relative to the current
implementation. This includes:
- `README.md` — feature lists, setup steps, API examples, port numbers,
binary names, MCP config snippets, environment variable names
- `CHANGELOG.md` — add an `[Unreleased]` entry or append to the current one
summarizing what changed (use the draft-release-notes skill format if
already in use)
- `docs/` content — any `.mdx` / `.md` files whose prose contradicts or
omits the current implementation
- `backend/README.md` — if API or server behavior changed
- Any other doc whose claims are now incorrect
**Rules:**
- Only update what is actually stale. Do not rewrite correct documentation.
- Do not alter application source code as part of a `.DCP` run.
- After edits, run `git diff --check` to confirm no whitespace errors.
---
## Phase 3 — Update .labyricorn Devlog
Create or update devlog entries for the milestones reached since the last
`.DCP`. Follow `.labyricorn/devlog/AGENTS.md` strictly.
### Entry location
`devlog/<stable-slug>/contents.lr` — one entry per meaningful milestone.
If multiple milestones occurred since the last `.DCP`, create multiple entries.
### Required fields (all mandatory)
```
_model: devlog-entry
schema_version: 1
title: <Human-readable title>
date: <YYYY-MM-DD of source_commit>
author: Labyricorn
summary: <One-sentence summary suitable for a chronological listing>
tags: <Comma-separated display labels, e.g. tts, ui, backend, mcp, release>
source_commit: <Full 40-character lowercase commit SHA>
---
body:
<Markdown prose — explain the milestone, why it mattered, what changed.
Do NOT merely expand a commit message. Do NOT invent results, user feedback,
or completion claims. Distinguish design from shipping behavior.
Link to the commit using the repo HTTPS URL.>
```
### Update the devlog index
Ensure `.labyricorn/devlog/contents.lr` lists any new entry slug in its
`entries` field (if the schema uses an index).
### Update project record if needed
If the project status, summary, or description at
`.labyricorn/project/contents.lr` is stale, update it. Ask before changing
`project_id`, `repository_url`, `default_branch`, or `author`.
### Validate
Run:
```
python devlog_editor.py --validate
```
Fix any validation errors before proceeding. If the script is unavailable,
manually verify all required fields are present in every touched record.
---
## Phase 4 — Commit
Stage only the documentation and `.labyricorn/` changes:
```
git add README.md CHANGELOG.md docs/ .labyricorn/
# Add any other doc files that were updated
git add <any other updated doc files>
```
Do **not** stage unrelated application source changes unless the user
explicitly included them in the current session's work.
Run `git diff --check --cached` to confirm no whitespace errors in staged
files.
Commit with a message in this format:
```
docs: update documentation and devlog for <brief description>
- Updated README.md: <what changed>
- Updated CHANGELOG.md: <what changed>
- Added devlog entry '<slug>': <one-line summary>
- Updated project record: <what changed> (if applicable)
```
---
## Phase 5 — Push
```
git push
```
This pushes to `origin/main` (production). Confirm the push succeeded and
report the final commit SHA and push status to the user.
---
## Handoff report
After completing all phases, tell the user:
1. Which documentation files were updated and what changed
2. Which devlog entries were created or updated (with their slugs and dates)
3. The commit SHA and message
4. Push status (succeeded / failed + error)
5. Any items that need follow-up (e.g. validation warnings, stale docs
that need more information from the user before they can be updated)
+10 -1
View File
@@ -45,4 +45,13 @@ scoped `AGENTS.md` files before making changes.
- Alternatively, launch the graphical editor with `python devlog_editor.py` for
interactive management of devlog entries and publishing status.
- Run `git diff --check` and review diffs carefully before staging or committing.
- At handoff, summarize files changed, validation performed, and any next steps.
- At handoff, summarize files changed, validation performed, and any next steps.
## Shorthand commands
- `.DCP`**Document, Commit, Push.** When the user issues `.DCP`, read and
execute the `.agents/skills/dcp/SKILL.md` skill in full. This means:
update any stale in-repo documentation (README, CHANGELOG, docs/), write or
update `.labyricorn/` devlog entries for recent milestones, validate with
`python devlog_editor.py --validate`, commit the documentation and devlog
changes, and push to `origin/main`.