Autonomous daily run. - Regenerated STATUS.md (76/76 paired, 100%; domain classifier now routes dia/fmeda/hsi/item-definition to safety instead of "other"). - Wrote docs/skill-polish-log/hara-builder.md with three low-severity findings and a drafted <=1024-char description rewrite. No .skill edits applied (none matched the autonomous-edit allowlist). - Journal entry appended to docs/AUTONOMOUS_LOG.md. Generated by automotive-skills-daily-standup scheduled task.
111 lines
6.2 KiB
Markdown
111 lines
6.2 KiB
Markdown
# hara-builder polish log
|
||
|
||
_Polish target for W20 (issue [#3](https://github.com/jherrodthomas/automotive-skills-suite/issues/3)). Reviewer: autonomous daily-standup task._
|
||
|
||
---
|
||
|
||
## 2026-05-12 — first POLISH pass
|
||
|
||
**Mode:** POLISH (Tuesday)
|
||
**File reviewed:** `skills/hara-builder.skill` (ZIP archive; SKILL.md is 12,273 bytes / 146 lines).
|
||
**DoD recap (from `docs/weekly/WEEK-2026-W20.md`):**
|
||
description ≤ 1024 chars, frontmatter has all required fields, and the trigger list
|
||
mentions HARA + hazard analysis + ASIL + safety goal + item definition within the first
|
||
400 chars of the description.
|
||
|
||
### What's good
|
||
|
||
- **Frontmatter is clean.** Both required keys present (`name`, `description`); no extra
|
||
fields drifting in; YAML parses without complaint.
|
||
- **Description length is comfortably under budget.** 911 / 1024 chars. Leaves ~110 chars
|
||
of headroom if a future trigger phrase needs to be inserted without a re-write.
|
||
- **Trigger surface is strong.** "HARA", "hazard analysis", "ASIL", "item definition",
|
||
and "ISO 26262" all appear inside the first 400 chars of the description. Casual
|
||
phrasings ("'I need the safety analysis for this ECU' or 'what is the ASIL for X'")
|
||
are explicitly listed at the end, which is the right place for casual variants — they
|
||
catch loose-language invocations without crowding the formal triggers up front.
|
||
- **Workflow doc is unusually well-structured.** Five numbered steps, each with a clear
|
||
output. Step 2's "always read this on first invocation" callout on
|
||
`references/malfunctions.md` is exactly the kind of forcing-function note that keeps
|
||
Claude from skipping reference reads.
|
||
- **Common-mistakes section earns its keep.** The five anti-patterns at the bottom
|
||
(exposure-vs-hazard-frequency, dropping NSC rows, one-SG-per-row, etc.) are the
|
||
actual failure modes a junior safety engineer hits. This is mentor-quality content,
|
||
not filler.
|
||
- **Override path is honest.** "If the user says 'this S rating is wrong' — do not
|
||
argue" plus the `rating_overrides` JSON contract is the right user-trust posture for
|
||
a skill that auto-suggests judgments.
|
||
|
||
### What to fix
|
||
|
||
1. **DoD miss: "safety goal" is NOT in the first 400 chars of the description.**
|
||
The phrase first appears around char 506 ("Safety Goals tab using the Prevent-the-hazard
|
||
convention"). All five other expected trigger phrases hit the window; only this one
|
||
misses. Severity: **low** — the description still triggers reliably on HARA / ASIL /
|
||
hazard analysis, and "safety goal derivation" *does* appear at char ~564 as part of
|
||
the "Use this skill whenever the user mentions..." list. But strictly per the W20
|
||
DoD, this is the one open item.
|
||
|
||
2. **The "Produces a multi-tab xlsx with..." enumeration is long and prose-heavy.**
|
||
~250 chars listing tabs in a single sentence. It pushes "safety goal" past the 400
|
||
threshold (see fix #1) and is a candidate for either splitting into two sentences or
|
||
front-loading the most search-worthy tabs. Severity: **low**.
|
||
|
||
3. **No mention of "concept phase" in the first 400 chars.** The phrase is part of the
|
||
item-definition-builder ↔ HARA pipeline narrative used elsewhere in the suite, and
|
||
adding it would catch invocations like "do the concept phase deliverable for this
|
||
ECU." Severity: **low**, optional.
|
||
|
||
### Suggested edits (NOT applied this run)
|
||
|
||
The fix for #1 is editorial re-ordering of the description, not a typo / length /
|
||
missing-field fix — and the daily-standup spec instructs the autonomous run to apply
|
||
only those. **No edits committed today.** Captured here for the next human review pass.
|
||
|
||
A minimal proposed rewrite of the first sentence pair (still ≤ 1024 chars) is:
|
||
|
||
```
|
||
description: Generate an audit-ready ISO 26262 Hazard Analysis and Risk Assessment
|
||
(HARA) workbook from an item definition and function list. Derives safety goals
|
||
with ASIL determination across the full Cartesian of function × malfunction ×
|
||
operating environment, and produces a multi-tab xlsx covering the 14 malfunction
|
||
guide words (M01–M14), S/E/C reference tables, the Function-by-Malfunction
|
||
safety-criticality filter, the auto-suggested formula-driven worksheet, the
|
||
Safety Goals tab using the Prevent-the-hazard convention, and an FSC hand-off.
|
||
Use this skill whenever the user mentions HARA, hazard analysis, ASIL
|
||
determination, safety goal derivation, item definition, concept phase, or
|
||
ISO 26262 concept-phase deliverables, even casual phrasings like 'I need the
|
||
safety analysis for this ECU' or 'what is the ASIL for X'. Always use this skill
|
||
instead of producing a freeform HARA in chat; the spreadsheet output is the
|
||
deliverable analysts expect.
|
||
```
|
||
|
||
Char-count of the proposed rewrite: ~985 (still under 1024). "Safety goal" first appears
|
||
at char ~169 (well inside the 400 window). "Concept phase" first appears at char ~580
|
||
(outside the strict 400 window for that phrase, but the user-facing trigger explicitly
|
||
names it). All five DoD triggers + the bonus "concept phase" hit the description.
|
||
|
||
### Other observations (not fixes, just notes for future passes)
|
||
|
||
- The body of `SKILL.md` (everything after the frontmatter) is **prose, not bullet
|
||
soup** — which matches the system style guidance for high-quality skills. Don't
|
||
refactor it into bullet trees.
|
||
- The "Files in this skill" tree at the bottom is accurate as of inspection (matches
|
||
`unzip -l skills/hara-builder.skill`). Good.
|
||
- The skill ships a non-trivial pair of Python scripts (`generate_hara.py`,
|
||
`recalc.py`) and a soffice helper. Out of scope for description-polish, but worth
|
||
noting that any future rename of `scripts/office/soffice.py` would need a parallel
|
||
edit in `SKILL.md`'s file-tree block.
|
||
|
||
### Severity roll-up
|
||
|
||
| Finding | Severity | Action |
|
||
|---|---|---|
|
||
| "safety goal" outside first 400 chars | low | proposed rewrite drafted; await human review |
|
||
| Long single-sentence "Produces..." clause | low | folded into the same rewrite |
|
||
| No "concept phase" trigger up front | low (optional) | included in the proposed rewrite |
|
||
|
||
**No code edits committed in this run.** Issue #3 stays open with this log linked from
|
||
the journal entry. Next autonomous touch on this skill: probably W21 if it stays in the
|
||
LRT bucket, otherwise close on human approval of the rewrite.
|