/moonview:report — Generate Completion Report
Generate a structured completion report for a task module, documenting what was planned, executed, and verified.
Usage
/moonview:report <task_module_path> [--format full|summary]
Prerequisites
- Task module should have status
complete (post-exec assessment passed)
- Can also be run on
blocked or cancelled tasks for documentation purposes
- Minimum content: If status is
draft and .plan.md does not exist, report outputs a brief notice ("No meaningful content to report — task is still in draft with no plan") instead of generating an empty report structure
Report Structure
Full Format
# Task Report: <title>
## Summary
- **Status**: complete | blocked | cancelled
- **Created**: <timestamp>
- **Completed**: <timestamp>
- **Duration**: <calculated>
## Objective
<!-- From .target.md -->
## Plan
<!-- Summary of implementation approach from .plan.md -->
## Changes Made
<!-- List of files modified/created/deleted with brief descriptions -->
## Verification
<!-- From .test/ criteria and results files, build status, evaluation outcomes -->
## Issues Encountered
<!-- From .bugfix/ if exists, or "None" -->
## Dependencies
<!-- Status of depends_on modules -->
## Lessons Learned
<!-- Any notable patterns, workarounds, or discoveries -->
Summary Format
Compact single-section report with: status, objective (1 line), key changes (bullet list), verification result.
Output
The report is written to AiTasks/<module_name>/.report.md and also printed to screen.
Execution Steps
- Read
.index.json for task metadata (including completed_steps)
- Read
.target.md for objectives
- Read
.plan.md for implementation approach
- Read
.summary.md if exists (condensed context overview)
- Read
.test/ for verification criteria and test results (all files, sorted by name, if exists)
- Read
.analysis/ for evaluation history (all files, sorted by name, if exists)
- Read
.bugfix/ for issue history (all files, sorted by name, if exists)
- Read
.notes/ for research findings and experience log (all files, sorted by name, if exists)
- Collect git changes related to the task (if identifiable)
- Compose report in requested format
- Write to
.report.md
- Distill experience: If task status is
complete and type is non-empty, validate each pipe-separated segment matches [a-zA-Z0-9_:-]+. Directory-safe transform: replace : with - in segment when used as directory name (e.g., science:astro → science-astro); original type value in .index.json is unchanged. Extract key learnings for each segment (e.g., type data-pipeline|ml → write to both data-pipeline/ and ml/). Acquire AiTasks/.experiences/.lock before writing (see Concurrency Protection in commands/ai-cli-task.md). For each segment: (a) create AiTasks/.experiences/<segment>/ directory if not exists; (b) write AiTasks/.experiences/<segment>/<module>.md containing: what worked, what didn't, key decisions, tools/patterns discovered; (c) overwrite AiTasks/.experiences/<segment>/.summary.md — condensed summary of all entries in that type directory (distilled key patterns + entry index table with module, date, key learnings). Then overwrite top-level AiTasks/.experiences/.summary.md — index of all type directories (type, task count, keywords, last updated). Release lock after write
- Sync shared type profile: If
.type-profile.md exists, merge refined profile back to AiTasks/.type-profiles/<primary-type>.md for ALL types (seed and discovered alike — shared profiles accumulate cross-task intelligence that static tables cannot). Apply directory-safe transform: replace : with - in type when used as filename (e.g., science:astro → science-astro). Acquire AiTasks/.type-profiles/.lock before writing. If shared profile already exists, update sections that have higher-confidence info (check refinement log dates). Append task's refinement log entries. Release lock after write
- Git commit:
-- ai-cli-task(<module>):report generate completion report
- Write
.auto-signal: { "step": "report", "result": "(generated)", "next": "(stop)", "checkpoint": "", "timestamp": "..." }
- Print report to screen
Note: Report is a terminal step — it reads ALL history files (not just latest) to produce a comprehensive record. .summary.md is used as an overview, not a replacement for full history in report context.
State Transitions
No status change — report generation is informational. The task must already be complete, blocked, or cancelled.
Git
-- ai-cli-task(<module>):report generate completion report
.auto-signal
{ "step": "report", "result": "(generated)", "next": "(stop)", "checkpoint": "", "timestamp": "..." }
Report is always a terminal step — next is always (stop).
Notes
- Reports are overwritten on regeneration (only latest report kept)
- For
blocked tasks, the report documents what was completed and what blocks remain
- For
cancelled tasks, the report documents the reason for cancellation
- The report serves as a permanent record even after task files are archived
- For
complete tasks, report includes change history via git log --oneline --all --fixed-strings --grep="ai-cli-task(<module>)" (uses --fixed-strings to avoid regex interpretation of parentheses; works even after task branch deletion)
- Concurrency: Report acquires
AiTasks/<module>/.lock before proceeding and releases on completion (see Concurrency Protection in commands/ai-cli-task.md)
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: huacheng-ai-cli-online-report3description: Huacheng Ai Cli Online Report4---56# /moonview:report — Generate Completion Report78Generate a structured completion report for a task module, documenting what was planned, executed, and verified.910## Usage1112```13/moonview:report <task_module_path> [--format full|summary]14```1516## Prerequisites1718- Task module should have status `complete` (post-exec assessment passed)19- Can also be run on `blocked` or `cancelled` tasks for documentation purposes20- **Minimum content**: If status is `draft` and `.plan.md` does not exist, report outputs a brief notice ("No meaningful content to report — task is still in draft with no plan") instead of generating an empty report structure2122## Report Structure2324### Full Format2526```markdown27# Task Report: <title>2829## Summary30- **Status**: complete | blocked | cancelled31- **Created**: <timestamp>32- **Completed**: <timestamp>33- **Duration**: <calculated>3435## Objective36<!-- From .target.md -->3738## Plan39<!-- Summary of implementation approach from .plan.md -->4041## Changes Made42<!-- List of files modified/created/deleted with brief descriptions -->4344## Verification45<!-- From .test/ criteria and results files, build status, evaluation outcomes -->4647## Issues Encountered48<!-- From .bugfix/ if exists, or "None" -->4950## Dependencies51<!-- Status of depends_on modules -->5253## Lessons Learned54<!-- Any notable patterns, workarounds, or discoveries -->55```5657### Summary Format5859Compact single-section report with: status, objective (1 line), key changes (bullet list), verification result.6061## Output6263The report is written to `AiTasks/<module_name>/.report.md` and also printed to screen.6465## Execution Steps66671. **Read** `.index.json` for task metadata (including `completed_steps`)682. **Read** `.target.md` for objectives693. **Read** `.plan.md` for implementation approach704. **Read** `.summary.md` if exists (condensed context overview)715. **Read** `.test/` for verification criteria and test results (all files, sorted by name, if exists)726. **Read** `.analysis/` for evaluation history (all files, sorted by name, if exists)737. **Read** `.bugfix/` for issue history (all files, sorted by name, if exists)748. **Read** `.notes/` for research findings and experience log (all files, sorted by name, if exists)759. **Collect** git changes related to the task (if identifiable)7610. **Compose** report in requested format7711. **Write** to `.report.md`7812. **Distill experience**: If task status is `complete` and `type` is non-empty, validate each pipe-separated segment matches `[a-zA-Z0-9_:-]+`. **Directory-safe transform**: replace `:` with `-` in segment when used as directory name (e.g., `science:astro` → `science-astro`); original type value in `.index.json` is unchanged. Extract key learnings for **each** segment (e.g., type `data-pipeline|ml` → write to both `data-pipeline/` and `ml/`). Acquire `AiTasks/.experiences/.lock` before writing (see Concurrency Protection in `commands/ai-cli-task.md`). For each segment: (a) create `AiTasks/.experiences/<segment>/` directory if not exists; (b) write `AiTasks/.experiences/<segment>/<module>.md` containing: what worked, what didn't, key decisions, tools/patterns discovered; (c) overwrite `AiTasks/.experiences/<segment>/.summary.md` — condensed summary of all entries in that type directory (distilled key patterns + entry index table with module, date, key learnings). Then overwrite top-level `AiTasks/.experiences/.summary.md` — index of all type directories (type, task count, keywords, last updated). Release lock after write7913. **Sync shared type profile**: If `.type-profile.md` exists, merge refined profile back to `AiTasks/.type-profiles/<primary-type>.md` for ALL types (seed and discovered alike — shared profiles accumulate cross-task intelligence that static tables cannot). Apply directory-safe transform: replace `:` with `-` in type when used as filename (e.g., `science:astro` → `science-astro`). Acquire `AiTasks/.type-profiles/.lock` before writing. If shared profile already exists, update sections that have higher-confidence info (check refinement log dates). Append task's refinement log entries. Release lock after write8014. **Git commit**: `-- ai-cli-task(<module>):report generate completion report`8115. **Write** `.auto-signal`: `{ "step": "report", "result": "(generated)", "next": "(stop)", "checkpoint": "", "timestamp": "..." }`8216. **Print** report to screen8384**Note**: Report is a terminal step — it reads ALL history files (not just latest) to produce a comprehensive record. `.summary.md` is used as an overview, not a replacement for full history in report context.8586## State Transitions8788No status change — report generation is informational. The task must already be `complete`, `blocked`, or `cancelled`.8990## Git9192- `-- ai-cli-task(<module>):report generate completion report`9394## .auto-signal9596`{ "step": "report", "result": "(generated)", "next": "(stop)", "checkpoint": "", "timestamp": "..." }`9798Report is always a terminal step — `next` is always `(stop)`.99100## Notes101102- Reports are overwritten on regeneration (only latest report kept)103- For `blocked` tasks, the report documents what was completed and what blocks remain104- For `cancelled` tasks, the report documents the reason for cancellation105- The report serves as a permanent record even after task files are archived106- For `complete` tasks, report includes change history via `git log --oneline --all --fixed-strings --grep="ai-cli-task(<module>)"` (uses `--fixed-strings` to avoid regex interpretation of parentheses; works even after task branch deletion)107- **Concurrency**: Report acquires `AiTasks/<module>/.lock` before proceeding and releases on completion (see Concurrency Protection in `commands/ai-cli-task.md`)108109---110> Converted and distributed by [TomeVault](https://tomevault.io/claim/huacheng) — claim your Tome and manage your conversions.111<!-- tomevault:4.0:skill_md:2026-04-13 -->