@hdwebsoft/hdcode-ai-darwin-x64 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/hdcode +0 -0
- package/bin/index.js.map +1 -1
- package/bin/worker.js.map +1 -1
- package/package.json +1 -1
- package/resources/agents/finder.md +1 -1
- package/resources/agents/mermaid.md +1 -1
- package/resources/skills/hd-code-review/CODING_STANDARDS.md +14 -114
- package/resources/skills/hd-code-review/REVIEW_STANDARDS.md +76 -0
- package/resources/skills/hd-code-review/SKILL.md +314 -90
- package/resources/skills/hd-code-review/reference/review-checklist.md +104 -101
- package/resources/skills/hd-code-review/reference/stacks/apex.md +49 -0
- package/resources/skills/hd-code-review/reference/stacks/aura.md +39 -0
- package/resources/skills/hd-code-review/reference/stacks/cakephp.md +50 -0
- package/resources/skills/hd-code-review/reference/stacks/django.md +53 -0
- package/resources/skills/hd-code-review/reference/stacks/dotnet.md +52 -0
- package/resources/skills/hd-code-review/reference/stacks/expo.md +39 -0
- package/resources/skills/hd-code-review/reference/stacks/flutter.md +48 -0
- package/resources/skills/hd-code-review/reference/stacks/go.md +51 -0
- package/resources/skills/hd-code-review/reference/stacks/laravel.md +56 -0
- package/resources/skills/hd-code-review/reference/stacks/lwc.md +49 -0
- package/resources/skills/hd-code-review/reference/stacks/nodejs.md +51 -0
- package/resources/skills/hd-code-review/reference/stacks/php.md +52 -0
- package/resources/skills/hd-code-review/reference/stacks/python.md +50 -0
- package/resources/skills/hd-code-review/reference/stacks/react.md +51 -0
- package/resources/skills/hd-code-review/reference/stacks/reactnative.md +54 -0
- package/resources/skills/hd-code-review/reference/stacks/scala.md +48 -0
- package/resources/skills/hd-code-review/reference/stacks/visualforce.md +38 -0
- package/resources/skills/hd-code-review/reference/stacks/vuejs.md +52 -0
- package/resources/skills/hd-code-review/reference/stacks/wordpress.md +54 -0
- package/resources/skills/hd-daily-goals/SKILL.md +41 -9
- package/resources/skills/hd-daily-goals/reference/ticket-autofill.md +104 -0
- package/resources/skills/hd-daily-goals/reference/validation-rules.md +13 -0
- package/resources/skills/hd-daily-report/SKILL.md +70 -14
- package/resources/skills/hd-daily-report/reference/sample-report-qc.md +44 -0
- package/resources/skills/hd-daily-report/reference/sample-report.md +18 -15
- package/resources/skills/hd-daily-report/reference/validation-rules.md +28 -7
- package/resources/skills/hd-daily-viewer/SKILL.md +222 -0
- package/resources/skills/hd-docs-init/SKILL.md +33 -0
- package/resources/skills/hd-docs-parse/SKILL.md +2 -0
- package/resources/skills/hd-docs-parse/scripts/parse_document.py +6 -0
- package/resources/skills/hd-docs-sync/SKILL.md +65 -3
- package/resources/skills/hd-docs-sync/reference/doc-mapping.md +1 -0
- package/resources/skills/hd-help/SKILL.md +24 -0
- package/resources/skills/hd-help/reference/skill-map.md +122 -7
- package/resources/skills/hd-iso/SKILL.md +409 -0
- package/resources/skills/hd-iso/reference/iso-27001-requirements.md +166 -0
- package/resources/skills/hd-iso/reference/iso-9001-requirements.md +91 -0
- package/resources/skills/hd-iso/reference/role-profiles.md +115 -0
- package/resources/skills/hd-iso-ready/SKILL.md +146 -0
- package/resources/skills/hd-iso-sync/SKILL.md +217 -0
- package/resources/skills/hd-iso-sync/reference/frontmatter-schema.md +89 -0
- package/resources/skills/hd-iso-verify/SKILL.md +294 -0
- package/resources/skills/hd-issue-resolution/SKILL.md +20 -0
- package/resources/skills/hd-task/SKILL.md +12 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hd-daily-viewer
|
|
3
|
+
description: "View, navigate, and summarize past daily goals and reports saved to ~/.hd/. Supports single-day detail view, time-window summaries with aggregated metrics, and a list mode showing recent file availability. Use when reviewing past work, comparing goals vs results, or getting a weekly/monthly overview."
|
|
4
|
+
license: proprietary
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
copyright: "© HDWEBSOFT. All rights reserved."
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Daily Viewer Skill
|
|
11
|
+
|
|
12
|
+
> Read-only. Never writes or modifies files. Data sources: `~/.hd/daily-goals/` and `~/.hd/daily-reports/`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Startup
|
|
17
|
+
|
|
18
|
+
> This skill never writes files. Config is read-only. Source files in `~/.hd/` are never modified.
|
|
19
|
+
|
|
20
|
+
Read `~/.hd/config.yaml` if it exists → load `ticket_patterns` into `$URL_PATTERN[PREFIX]`. If config is absent or empty: proceed normally with no linkification. No history scan. No config write under any circumstances.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Mode Detection
|
|
25
|
+
|
|
26
|
+
Parse invocation args before doing anything else:
|
|
27
|
+
|
|
28
|
+
| Input | Mode |
|
|
29
|
+
|-------|------|
|
|
30
|
+
| No args | **List mode** |
|
|
31
|
+
| `today`, `yesterday`, `last Monday`, `YYYY-MM-DD`, `March 3`, any single date reference | **Single-day mode** |
|
|
32
|
+
| `this week`, `last week`, `last N days`, `last month`, `March`, `YYYY-MM-DD to YYYY-MM-DD`, any multi-day range | **Window mode** |
|
|
33
|
+
|
|
34
|
+
Resolve relative dates using today's date. "Last Monday" = the most recent Monday before today.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Data Sources
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
ls ~/.hd/daily-goals/ # files: YYYY-MM-DD.md
|
|
42
|
+
ls ~/.hd/daily-reports/ # files: YYYY-MM-DD.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For any given date, either or both files may exist. Always handle missing gracefully:
|
|
46
|
+
- No goals file → show `[no goals recorded]`
|
|
47
|
+
- No report file → show `[no report recorded]`
|
|
48
|
+
- Neither file → show `[no data for this date]`
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## List Mode (no args)
|
|
53
|
+
|
|
54
|
+
Show the last 7 calendar days (regardless of weekends) with availability indicators.
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
📅 Recent daily files:
|
|
58
|
+
|
|
59
|
+
2026-03-04 ✅ goals ✅ report ← today
|
|
60
|
+
2026-03-03 ✅ goals ✅ report
|
|
61
|
+
2026-03-02 ✅ goals ❌ report
|
|
62
|
+
2026-03-01 ❌ goals ✅ report
|
|
63
|
+
2026-02-28 ✅ goals ✅ report
|
|
64
|
+
2026-02-27 ❌ goals ❌ report
|
|
65
|
+
2026-02-26 ✅ goals ✅ report
|
|
66
|
+
|
|
67
|
+
What would you like to view?
|
|
68
|
+
• A specific day: "yesterday", "March 3", "2026-02-28"
|
|
69
|
+
• A time window: "this week", "last week", "last 7 days", "February"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Wait for user input, then switch to single-day or window mode accordingly.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Single-Day Mode
|
|
77
|
+
|
|
78
|
+
Show full detail — goals and report side by side in clearly separated sections.
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
📅 {WEEKDAY}, {MONTH} {DAY}, {YEAR}
|
|
82
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
83
|
+
|
|
84
|
+
🎯 GOALS
|
|
85
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
+
{full content of ~/.hd/daily-goals/YYYY-MM-DD.md}
|
|
87
|
+
[no goals recorded] ← if file missing
|
|
88
|
+
|
|
89
|
+
📋 REPORT
|
|
90
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
91
|
+
{full content of ~/.hd/daily-reports/YYYY-MM-DD.md}
|
|
92
|
+
[no report recorded] ← if file missing
|
|
93
|
+
|
|
94
|
+
📊 DAY METRICS
|
|
95
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
96
|
+
Goals set: {N} across {P} projects
|
|
97
|
+
Done tasks: {N}
|
|
98
|
+
In-progress: {N}
|
|
99
|
+
Blockers: {N} total → {X} solved ✅ {Y} still open ⚠️
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Linkification pass:** Before rendering any file content, scan each line for bare ticket IDs matching a known prefix in `$URL_PATTERN` (pattern `[A-Z]+-\d+` where prefix is in `$URL_PATTERN` and value ≠ `"no-tracker"`). Replace bare `PREFIX-NNNN` with `[PREFIX-NNNN](expanded_url)` in display output only. IDs already formatted as markdown links are left unchanged. IDs with no known pattern render as-is. Source files are never modified.
|
|
103
|
+
|
|
104
|
+
Parse metrics directly from the file contents. If a file is missing, show `—` for its metrics.
|
|
105
|
+
|
|
106
|
+
After display, ask:
|
|
107
|
+
```
|
|
108
|
+
View another day or time window? (or press Enter to exit)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Window Mode
|
|
114
|
+
|
|
115
|
+
### Step 1 — Resolve window to a date range
|
|
116
|
+
|
|
117
|
+
Compute start and end dates:
|
|
118
|
+
- `this week` → Monday of current week to today
|
|
119
|
+
- `last week` → Monday to Friday of the previous week
|
|
120
|
+
- `last 7 days` → today minus 6 days to today
|
|
121
|
+
- `last 30 days` / `last month` → today minus 29 days to today
|
|
122
|
+
- `March` / `February` → full calendar month (current year assumed)
|
|
123
|
+
- `YYYY-MM-DD to YYYY-MM-DD` → exact range
|
|
124
|
+
|
|
125
|
+
### Step 2 — Collect data for all dates in range
|
|
126
|
+
|
|
127
|
+
For each date: read `~/.hd/daily-goals/YYYY-MM-DD.md` and `~/.hd/daily-reports/YYYY-MM-DD.md` if they exist.
|
|
128
|
+
|
|
129
|
+
### Step 3 — Display (detail level scales with window size)
|
|
130
|
+
|
|
131
|
+
| Window size | Detail level |
|
|
132
|
+
|-------------|-------------|
|
|
133
|
+
| 1 day | → use Single-Day Mode instead |
|
|
134
|
+
| 2–3 days | Per-day breakdown with task-level lists |
|
|
135
|
+
| 4–7 days | Per-day summary row + aggregated metrics |
|
|
136
|
+
| > 7 days | High-level aggregates + weekly rows, no per-day task lists |
|
|
137
|
+
|
|
138
|
+
**Regardless of window size: always show at least 7 Outstanding Activities** (see below).
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Summary Header (all window sizes)
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
📊 Summary: {START_DATE} – {END_DATE} ({N} days, {D} days with data)
|
|
146
|
+
|
|
147
|
+
✅ Done tasks: {N}
|
|
148
|
+
⚠️ Blockers: {N} total → {X} solved ✅ {Y} still open ⚠️
|
|
149
|
+
🎯 Goals set: {N} → {A} achieved, {P} partial, {M} missed
|
|
150
|
+
⏱️ Time-consuming tasks (top 3 by total hours logged across window):
|
|
151
|
+
- [{TASK-ID}] {Task name} — {Nh} across {D} days
|
|
152
|
+
- [{TASK-ID}] {Task name} — {Nh}
|
|
153
|
+
- [{TASK-ID}] {Task name} — {Nh}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Derive "time-consuming" from TIME ALLOCATION sections in daily reports — tasks or projects that appear across multiple days or with the highest single-day hours.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### Per-Day Breakdown (window ≤ 7 days)
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Per-day breakdown:
|
|
164
|
+
{WEEKDAY} {DATE} │ Goals: {N} │ Done: {N} │ In-progress: {N} │ Blockers: {summary}
|
|
165
|
+
{WEEKDAY} {DATE} │ Goals: {N} │ Done: {N} │ In-progress: {N} │ No report
|
|
166
|
+
...
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
For window ≤ 3 days: also expand each row to show task-level lists under it (same format as single-day report sections, condensed). Apply the same linkification pass (bare ticket IDs → markdown links) to all task text rendered here.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### Long Window Aggregates (window > 7 days)
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Weekly breakdown:
|
|
177
|
+
Week of {DATE} │ {N} done │ {N} blockers ({X} solved) │ {N} goals set
|
|
178
|
+
Week of {DATE} │ {N} done │ {N} blockers ({X} solved) │ {N} goals set
|
|
179
|
+
...
|
|
180
|
+
|
|
181
|
+
Top projects by time:
|
|
182
|
+
{Project A}: {N}h │ {Project B}: {N}h │ {Project C}: {N}h
|
|
183
|
+
|
|
184
|
+
Recurring blockers (appeared on 2+ days):
|
|
185
|
+
- "{Blocker description}" — appeared {N} days
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### Outstanding Activities (always shown, minimum 7)
|
|
191
|
+
|
|
192
|
+
Picked from: tasks that are IN PROGRESS or have open (unsolved) blockers within the window, sorted by most recent occurrence first.
|
|
193
|
+
|
|
194
|
+
**If the window contains fewer than 7 such items:** expand backward day-by-day beyond the window start until 7 items are found. Note when items come from outside the window:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
🔥 Outstanding Activities ({N} items):
|
|
198
|
+
1. [{TASK-ID}] {Task name} — {completion%} — due {when} ⚠️ open blocker: "{blocker text}"
|
|
199
|
+
2. [{TASK-ID}] {Task name} — {completion%} — due {when}
|
|
200
|
+
3. [{TASK-ID}] {Task name} — blocked: "{blocker text}"
|
|
201
|
+
...
|
|
202
|
+
7. [{TASK-ID}] {Task name} — {completion%} ← from {DATE}, outside window
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Apply the linkification pass to all task IDs in the Outstanding Activities list.
|
|
206
|
+
|
|
207
|
+
Parse these from:
|
|
208
|
+
- `🔄 IN PROGRESS` sections in daily reports (completion %, when complete)
|
|
209
|
+
- `⚠️ ISSUES & BLOCKERS` sections in daily reports (severity, status, note)
|
|
210
|
+
|
|
211
|
+
Tasks with status `solved` in blockers are NOT outstanding. Only `open` or `in discussion`.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## After Display
|
|
216
|
+
|
|
217
|
+
Always end with:
|
|
218
|
+
```
|
|
219
|
+
View something else? (specific date, "this week", "last month", or press Enter to exit)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Accept any date/range input and switch mode accordingly. Loop until user exits.
|
|
@@ -244,6 +244,7 @@ Based on analysis, determine which docs to create using doc-mapping conventions.
|
|
|
244
244
|
| Migration | `docs/MIGRATION.md` |
|
|
245
245
|
| Security standards | `docs/SECURITY_STANDARDS.md` |
|
|
246
246
|
| Coding standards | `docs/CODING_STANDARDS.md` |
|
|
247
|
+
| Review standards | `docs/REVIEW_STANDARDS.md` |
|
|
247
248
|
|
|
248
249
|
> **AGENTS.md vs CLAUDE.md**: `AGENTS.md` is the full development guidelines file read by Amp agents. `CLAUDE.md` is a short Claude Code configuration file that points Claude agents to `AGENTS.md`. Always generate both — they serve different agent runtimes but the same guidelines.
|
|
249
250
|
|
|
@@ -259,6 +260,8 @@ Task() → docs/ARCHITECTURE.md generator
|
|
|
259
260
|
Task() → Package-specific AGENTS.md generators
|
|
260
261
|
Task() → docs/SECURITY_STANDARDS.md generator (if any security signals detected in scan)
|
|
261
262
|
Task() → docs/CODING_STANDARDS.md generator (always)
|
|
263
|
+
Task() → docs/REVIEW_STANDARDS.md generator (always)
|
|
264
|
+
Task() → docs/KNOWN_ISSUES.md generator (always)
|
|
262
265
|
```
|
|
263
266
|
|
|
264
267
|
### 3.3 Doc Templates
|
|
@@ -437,6 +440,32 @@ Always generate `docs/CODING_STANDARDS.md` on every hd-docs-init run (no signal
|
|
|
437
440
|
|
|
438
441
|
4. Write to `docs/CODING_STANDARDS.md`
|
|
439
442
|
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
### 3.6 REVIEW_STANDARDS.md Generation
|
|
446
|
+
|
|
447
|
+
Always generate `docs/REVIEW_STANDARDS.md` on every hd-docs-init run (no signal required).
|
|
448
|
+
|
|
449
|
+
1. Start from the base template at `skills/hd-code-review/REVIEW_STANDARDS.md`
|
|
450
|
+
|
|
451
|
+
2. Map detected project type to `tech_stack`:
|
|
452
|
+
| Project type (from Phase 1.2) | tech_stack value |
|
|
453
|
+
|-------------------------------|-----------------|
|
|
454
|
+
| Node.js / TypeScript | nodejs |
|
|
455
|
+
| Node.js Monorepo | nodejs |
|
|
456
|
+
| .NET Core / .NET 5+ | dotnet |
|
|
457
|
+
| .NET Framework | dotnet |
|
|
458
|
+
| .NET Solution (multi-project) | dotnet |
|
|
459
|
+
| Mixed (e.g. .NET API + Node frontend) | [dotnet, nodejs] |
|
|
460
|
+
| Other / unknown | ~ (leave blank) |
|
|
461
|
+
|
|
462
|
+
3. Pre-fill `tech_stack:` with the detected value as a convenience hint. The skill also auto-detects from diff
|
|
463
|
+
extensions at review time, so this field can remain `~` if left unchanged.
|
|
464
|
+
Add comment at top: `# Generated by docs-init — tech_stack is optional (auto-detected from diff); set only to override`
|
|
465
|
+
Add reference: `# Base template: see hd-code-review/REVIEW_STANDARDS.md in your Claude skills directory (~/.claude/skills/hd-code-review/REVIEW_STANDARDS.md)`
|
|
466
|
+
|
|
467
|
+
4. Write to `docs/REVIEW_STANDARDS.md`
|
|
468
|
+
|
|
440
469
|
## Phase 4: Review
|
|
441
470
|
|
|
442
471
|
### 4.1 Validation via finder (Amp) / Explore Subagent (Claude)
|
|
@@ -553,6 +582,8 @@ User: "Initialize docs for this new project"
|
|
|
553
582
|
- [ ] AGENTS.md generated (always required)
|
|
554
583
|
- [ ] CLAUDE.md generated pointing to AGENTS.md (always required)
|
|
555
584
|
- [ ] docs/CODING_STANDARDS.md generated (always required)
|
|
585
|
+
- [ ] docs/REVIEW_STANDARDS.md generated (always required)
|
|
586
|
+
- [ ] docs/KNOWN_ISSUES.md generated (always required)
|
|
556
587
|
```
|
|
557
588
|
|
|
558
589
|
## Output Summary Notes
|
|
@@ -566,6 +597,8 @@ After generation, report the following to the user:
|
|
|
566
597
|
| `docs/ARCHITECTURE.md` | created | Verify diagrams match code |
|
|
567
598
|
| `docs/SECURITY_STANDARDS.md` | created | Set `applicable_compliance` if security signals were detected |
|
|
568
599
|
| `docs/CODING_STANDARDS.md` | created | Edit `docs/CODING_STANDARDS.md` to enable project policies (feature flags, observability, i18n) as `required: yes` |
|
|
600
|
+
| `docs/REVIEW_STANDARDS.md` | created | Verify `tech_stack` is correct; add `custom_aspects` and `aspect_escalations` as needed |
|
|
601
|
+
| `docs/KNOWN_ISSUES.md` | created | Populate with project-specific known issues and accepted configuration debt |
|
|
569
602
|
|
|
570
603
|
## Troubleshooting
|
|
571
604
|
|
|
@@ -51,6 +51,7 @@ Parse the invocation:
|
|
|
51
51
|
| `--metadata` | No | off | Include document metadata in output |
|
|
52
52
|
| `--json` | No | — | Output as JSON (content + metadata) |
|
|
53
53
|
| `--check` | No | — | Verify installation and dependencies |
|
|
54
|
+
| `--cache` | No | off | Enable result caching (speeds up repeated extractions) |
|
|
54
55
|
|
|
55
56
|
### Natural Language Resolution
|
|
56
57
|
|
|
@@ -278,4 +279,5 @@ The script prints clear error messages for common issues:
|
|
|
278
279
|
/hd-docs-parse report.pdf --force-ocr — force OCR on text PDF
|
|
279
280
|
/hd-docs-parse report.pdf --metadata --json — full metadata as JSON
|
|
280
281
|
/hd-docs-parse --check — verify dependencies
|
|
282
|
+
/hd-docs-parse report.pdf --cache — enable caching for repeated extractions
|
|
281
283
|
```
|
|
@@ -78,6 +78,11 @@ def build_config(args):
|
|
|
78
78
|
|
|
79
79
|
kwargs = {}
|
|
80
80
|
|
|
81
|
+
# Caching off by default; use --cache to enable (pins dir so hits work cross-session)
|
|
82
|
+
kwargs["use_cache"] = getattr(args, "cache", False)
|
|
83
|
+
if kwargs["use_cache"]:
|
|
84
|
+
kwargs["cache_dir"] = str(Path.home() / ".cache" / "kreuzberg")
|
|
85
|
+
|
|
81
86
|
# OCR
|
|
82
87
|
if args.ocr or args.force_ocr:
|
|
83
88
|
kwargs["ocr_backend"] = "tesseract"
|
|
@@ -194,6 +199,7 @@ def main():
|
|
|
194
199
|
parser.add_argument("--lang", default="eng", help="OCR language codes (default: eng)")
|
|
195
200
|
parser.add_argument("--metadata", action="store_true", help="Include document metadata")
|
|
196
201
|
parser.add_argument("--json", action="store_true", dest="as_json", help="Output as JSON")
|
|
202
|
+
parser.add_argument("--cache", action="store_true", help="Enable result caching to speed up repeated extractions")
|
|
197
203
|
parser.add_argument("--check", action="store_true", help="Check installation and dependencies")
|
|
198
204
|
|
|
199
205
|
args = parser.parse_args()
|
|
@@ -19,7 +19,7 @@ REQUEST → ASK → COLLECT → VERIFY → MAP → RECONCILE → APPLY → STAND
|
|
|
19
19
|
| Phase | Action | Tools (Amp / Claude) |
|
|
20
20
|
| ------------------ | --------------------------------------- | ------------------------------------------------------------- |
|
|
21
21
|
| 1. Ask | Scope + start date from user | (interactive) |
|
|
22
|
-
| 2. Collect | git log + history/ + plans/ (parallel)
|
|
22
|
+
| 2. Collect | git log + history/ + plans/ + related repos (parallel) | `Bash`, `Glob`, `Read`, `oracle` (Amp) / `Plan` subagent (Claude) |
|
|
23
23
|
| 3. Verify | Ground topics in code | `finder` (Amp) / `Explore` subagent (Claude) |
|
|
24
24
|
| 4. Map | Auto-detect target docs | `finder` (Amp) / `Explore` subagent (Claude) |
|
|
25
25
|
| 5. Reconcile | Topics vs code vs docs | `oracle` (Amp) / `Plan` subagent (Claude) |
|
|
@@ -77,9 +77,58 @@ Extract from output:
|
|
|
77
77
|
2. Filter by date prefix >= start date
|
|
78
78
|
3. `Read` any `.md` files found
|
|
79
79
|
|
|
80
|
+
### Stream D — Related Repos Git History (conditional)
|
|
81
|
+
|
|
82
|
+
**Check conditions first:**
|
|
83
|
+
|
|
84
|
+
Read `additionalDirectories` from both `.claude/settings.json` and `.claude/settings.local.json`
|
|
85
|
+
and merge into one flat list of paths.
|
|
86
|
+
|
|
87
|
+
| AGENTS.md `## Related Projects` | `additionalDirectories` (merged) | Action |
|
|
88
|
+
|----------------------------------|----------------------------------|--------|
|
|
89
|
+
| ✅ present | ✅ has matching paths | Run git log for each matched path |
|
|
90
|
+
| ✅ present | ❌ no matches found | **Warn user** (see below), skip Stream D |
|
|
91
|
+
| ❌ missing | — | Silent skip |
|
|
92
|
+
|
|
93
|
+
**Alias matching**: for each alias in `## Related Projects`, check if any path in
|
|
94
|
+
`additionalDirectories` contains the alias as a directory name component
|
|
95
|
+
(e.g., alias `project-b-api` matches `/some/path/project-b-api`).
|
|
96
|
+
|
|
97
|
+
**Warning when Related Projects declared but no matching paths found:**
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
⚠️ Related Projects found in AGENTS.md but no matching paths in additionalDirectories.
|
|
101
|
+
Aliases declared: project-b-api, project-b-story-android
|
|
102
|
+
Stream D skipped — related repos git history will NOT be checked.
|
|
103
|
+
|
|
104
|
+
To fix: add to .claude/settings.json (committed, shared paths):
|
|
105
|
+
{ "additionalDirectories": ["/path/to/project-b-api"] }
|
|
106
|
+
|
|
107
|
+
Or add to .claude/settings.local.json (gitignored, local paths):
|
|
108
|
+
{ "additionalDirectories": ["/my/local/path/to/project-b-api"] }
|
|
109
|
+
|
|
110
|
+
See: /hd-help → Project Configuration Conventions → Multi-Repo Projects
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Display this warning once, then continue with Streams A/B/C only.
|
|
114
|
+
|
|
115
|
+
**When matches are found**, for each matched path:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
git -C <resolved-path> log --since="<date>" --oneline --no-merges
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Extract commit topics from the related repo. Label each with `[related: <alias>]`
|
|
122
|
+
so downstream phases know the origin.
|
|
123
|
+
|
|
124
|
+
**Why**: API changes in a related repo (e.g., renamed endpoint, changed request shape)
|
|
125
|
+
can make the current repo's docs stale even when the current repo had no commits.
|
|
126
|
+
|
|
80
127
|
### Synthesis
|
|
81
128
|
|
|
82
|
-
`oracle` (Amp) / `Plan` subagent (Claude) clusters all
|
|
129
|
+
`oracle` (Amp) / `Plan` subagent (Claude) clusters all four streams into a unified topic list.
|
|
130
|
+
Stream D topics carry `[related: <alias>]` labels. Reconcile phase should note when
|
|
131
|
+
a topic originates from a related repo rather than the current repo.
|
|
83
132
|
See `reference/collection-prompts.md` → **Stream Synthesis Prompt**.
|
|
84
133
|
|
|
85
134
|
## Phase 3: Verify Against Code
|
|
@@ -125,6 +174,7 @@ Use file-change signals from Stream A to auto-target:
|
|
|
125
174
|
| Troubleshooting insight | `docs/TROUBLESHOOTING.md` | — |
|
|
126
175
|
| Auth / PII / payment / compliance changes | `SECURITY_STANDARDS.md` (suggest review only) | — |
|
|
127
176
|
| Code style / patterns / convention changes | `docs/CODING_STANDARDS.md` — suggest review only | — |
|
|
177
|
+
| Stack change (new language/framework added) | `docs/REVIEW_STANDARDS.md` — suggest updating `tech_stack` | — |
|
|
128
178
|
|
|
129
179
|
> **CLAUDE.md**: This file is a short pointer to `AGENTS.md` and rarely needs updating. Only touch it if the project structure changes significantly (e.g., AGENTS.md is moved or renamed).
|
|
130
180
|
>
|
|
@@ -175,7 +225,7 @@ For multiple unrelated files: spawn parallel `Task` per file.
|
|
|
175
225
|
## Phase 7: Standards Delta Check
|
|
176
226
|
|
|
177
227
|
Runs at end of every `hd-docs-sync` execution — after Phase 6, independent of topic detection.
|
|
178
|
-
Checks
|
|
228
|
+
Checks all three standards pairs. If no delta on any: silent.
|
|
179
229
|
|
|
180
230
|
### Standards pairs
|
|
181
231
|
|
|
@@ -183,6 +233,8 @@ Checks both standards pairs. If no delta on either: silent.
|
|
|
183
233
|
| ---------------- | -------------- |
|
|
184
234
|
| `skills/hd-security-review/SECURITY_STANDARDS.md` | `docs/SECURITY_STANDARDS.md` |
|
|
185
235
|
| `skills/hd-code-review/CODING_STANDARDS.md` | `docs/CODING_STANDARDS.md` |
|
|
236
|
+
| `skills/hd-code-review/REVIEW_STANDARDS.md` | `docs/REVIEW_STANDARDS.md` |
|
|
237
|
+
| `docs/KNOWN_ISSUES.md` (format template from `hd-docs-init`) | `docs/KNOWN_ISSUES.md` |
|
|
186
238
|
|
|
187
239
|
For each pair, run Sub-flow A or B:
|
|
188
240
|
|
|
@@ -200,6 +252,8 @@ On **yes**: `Read` base file → extract the project override scaffold (schema s
|
|
|
200
252
|
|
|
201
253
|
On **no**: skip silently.
|
|
202
254
|
|
|
255
|
+
For `docs/KNOWN_ISSUES.md` specifically: scaffold the file with the KI entry format template + an empty KI entries section (no example entries).
|
|
256
|
+
|
|
203
257
|
### Sub-flow B: Project file exists → semantic diff + suggest
|
|
204
258
|
|
|
205
259
|
1. `Read` base file → extract semantic units (section rule titles + first sentence)
|
|
@@ -220,12 +274,19 @@ On approval: `Read` project file → `Edit` to append confirmed points under a
|
|
|
220
274
|
|
|
221
275
|
Manual edit always allowed — developer may prefer to copy-paste directly.
|
|
222
276
|
|
|
277
|
+
For `docs/KNOWN_ISSUES.md` specifically (Sub-flow B):
|
|
278
|
+
- Parse all `## KI-NNN` headings and extract their `Target fix` dates.
|
|
279
|
+
- Flag entries where `Target fix` date has passed → suggest resolving or updating the date.
|
|
280
|
+
- Flag entries that still contain example placeholder text (e.g., "Example —") → remind dev to replace with real issues.
|
|
281
|
+
|
|
223
282
|
### Semantic parse rules
|
|
224
283
|
|
|
225
284
|
| Standards file | Parse units as |
|
|
226
285
|
| -------------- | -------------- |
|
|
227
286
|
| `SECURITY_STANDARDS.md` | Section 3.x rule headings + Section 4 CRITICAL gate table rows |
|
|
228
287
|
| `CODING_STANDARDS.md` | Section 2.x bullet-point groups (2.2, 2.3) + Section 3.x policy names |
|
|
288
|
+
| `REVIEW_STANDARDS.md` | `tech_stack:` field + `reference/stacks/` preset names (Sub-flow A: offer create with auto-detected `tech_stack` pre-filled) |
|
|
289
|
+
| `KNOWN_ISSUES.md` | `## KI-NNN` headings + `Target fix` date field per entry |
|
|
229
290
|
|
|
230
291
|
Match criterion: project file contains the **section heading** (e.g. `3.9` or `Logging`) →
|
|
231
292
|
consider that rule "present". No deep content comparison needed.
|
|
@@ -301,6 +362,7 @@ User: "Sync docs for the estimation enhancements from last 2 weeks"
|
|
|
301
362
|
- [ ] Terminology matches existing docs
|
|
302
363
|
- [ ] Code-is-truth rule applied (planned ≠ implemented)
|
|
303
364
|
- [ ] Standards delta check completed (create or diff+suggest for both pairs)
|
|
365
|
+
- [ ] Related repos git history checked (Stream D — if Related Projects + additionalDirectories configured)
|
|
304
366
|
```
|
|
305
367
|
|
|
306
368
|
## Troubleshooting
|
|
@@ -58,7 +58,9 @@ Classify the user's description into one of these categories:
|
|
|
58
58
|
| **QA** | test cases, QA, QC, tester, test suite, generate test cases, revise test cases, danger zones, verify test coverage, cross-reference tests, test case template |
|
|
59
59
|
| **DailyGoals** | daily goals, morning goals, write today's goals, goals report, morning report before work |
|
|
60
60
|
| **DailyReport** | daily report, daily standup, what I worked on, end of day report, done today, working on, blockers |
|
|
61
|
+
| **DailyViewer** | view daily report, show past goals, yesterday's report, this week summary, daily history, review last week, what did I do, summary of the week |
|
|
61
62
|
| **DocParse** | extract text, parse document, convert PDF to text, OCR document, read DOCX, parse spreadsheet, extract from PDF, convert to markdown, batch extract, kreuzberg |
|
|
63
|
+
| **ISO** | ISO 9001, ISO 27001, compliance gap, iso lookup, iso onboard, iso change, sync iso docs, import google docs, iso policy, iso clause, hd-iso, iso verify, is this document ISO compliant, verify process against ISO, ncr, nonconformity, corrective action, mandatory records, certification readiness, are we ISO ready, audit readiness |
|
|
62
64
|
|
|
63
65
|
### Step 2: Route to Skill
|
|
64
66
|
|
|
@@ -98,6 +100,14 @@ Writing the morning goals report (what you plan to do today)?
|
|
|
98
100
|
Writing the daily status report (what you did / are doing / blocked on)?
|
|
99
101
|
YES → hd-daily-report
|
|
100
102
|
|
|
103
|
+
Want to VIEW or SUMMARIZE past daily goals or reports?
|
|
104
|
+
YES → hd-daily-viewer
|
|
105
|
+
/hd-daily-viewer — list last 7 days with availability indicators
|
|
106
|
+
/hd-daily-viewer yesterday — single day: goals + report + metrics
|
|
107
|
+
/hd-daily-viewer this week — weekly summary with per-day breakdown
|
|
108
|
+
/hd-daily-viewer last 30 days — monthly aggregates + outstanding activities
|
|
109
|
+
/hd-daily-viewer 2026-03-01 — specific date
|
|
110
|
+
|
|
101
111
|
Something is broken, wrong, or failing?
|
|
102
112
|
YES → hd-issue-resolution
|
|
103
113
|
|
|
@@ -149,6 +159,17 @@ Documentation goal:
|
|
|
149
159
|
AGENTS.md exists but stale? → hd-docs-sync
|
|
150
160
|
Completed beads to log? → hd-changelog
|
|
151
161
|
|
|
162
|
+
ISO 9001 / 27001 compliance goal?
|
|
163
|
+
Sync Google Docs → Markdown? → hd-iso-sync <folder-url>
|
|
164
|
+
Search ISO docs? → hd-iso lookup <query>
|
|
165
|
+
Check compliance gaps? → hd-iso gap --standard 27001
|
|
166
|
+
Planning a doc change? → hd-iso change <description>
|
|
167
|
+
Onboard a new employee? → hd-iso onboard --role <role>
|
|
168
|
+
Verify doc content quality? → hd-iso-verify <path|--clause|--standard|NL>
|
|
169
|
+
Log / track a nonconformity? → hd-iso ncr (log | list | close | show)
|
|
170
|
+
Check mandatory ISO records exist? → hd-iso records --standard 27001
|
|
171
|
+
Pre-audit readiness check? → hd-iso-ready --standard 27001
|
|
172
|
+
|
|
152
173
|
General problem exploration, unclear intent, or "I don't know what I need"?
|
|
153
174
|
→ hd-brainstorming (good starting point for any ambiguous situation)
|
|
154
175
|
```
|
|
@@ -184,6 +205,7 @@ Use this table to populate the `**Requires:**` line above. Omit the line for ski
|
|
|
184
205
|
| `hd-asana` | Python + `ASANA_API_KEY` env var |
|
|
185
206
|
| `hd-look-at`, `hd-painter` | Python + `GEMINI_API_KEY` env var |
|
|
186
207
|
| `hd-task`, `hd-tasks` | Linear / Jira / ClickUp / Asana MCP configured |
|
|
208
|
+
| `hd-iso-sync` | Google Docs MCP (`a-bonus/google-docs-mcp`) + Google OAuth credentials |
|
|
187
209
|
|
|
188
210
|
When requirements apply, append to the output:
|
|
189
211
|
> **Requires:** `<from table above>` — see `docs/INSTALL.md` for setup
|
|
@@ -212,6 +234,8 @@ Use these rules when the routing step above has ambiguity:
|
|
|
212
234
|
| `hd-look-at` vs `hd-painter` | Analyzing existing media (image/audio/video/screenshot)? → hd-look-at. Creating new images or videos from a text prompt? → hd-painter. |
|
|
213
235
|
| `hd-docs-parse` vs `hd-look-at` | Extracting text content from a document (PDF, DOCX, XLSX, images via OCR)? → hd-docs-parse. Analyzing/describing visual or audio content (what's in this image, transcribe audio)? → hd-look-at. |
|
|
214
236
|
| `hd-daily-goals` vs `hd-daily-report` | Morning, planning what to DO? → hd-daily-goals. During/end of day, reporting what was DONE? → hd-daily-report. |
|
|
237
|
+
| `hd-daily-report` vs `hd-daily-viewer` | Writing today's report? → hd-daily-report. Viewing/reviewing a past report? → hd-daily-viewer. |
|
|
238
|
+
| `hd-daily-goals` vs `hd-daily-viewer` | Writing today's goals? → hd-daily-goals. Reviewing past goals or summaries? → hd-daily-viewer. |
|
|
215
239
|
|
|
216
240
|
---
|
|
217
241
|
|