Repository navigation
docs(process): meeting procedure, meeting records and meeting-notes skill - #205
rajasimman-madhivanan wants to merge 3 commits into
Conversation
… readiness matrix Adds a Process tab to the docs site with: - Meeting Procedure: how PStop safety-case meetings are opened, closed and recorded as public summaries, with action items filed as issues. - Meeting Records, starting with the 2026-09-30 documentation kickoff. - Safety Certification Readiness: IEC 61508 process and documentation obligations with status, action items and resolutions. IDs, grouping and wording are ours; only IEC 61508 clause numbers are referenced.
| <!-- SPDX-FileCopyrightText: 2026 Polymath Robotics, Inc. --> | ||
| <!-- SPDX-License-Identifier: Apache-2.0 --> | ||
|
|
||
| # Documentation Kickoff |
There was a problem hiding this comment.
Meeting notes format should have agenda and what was missed, so things aren't forgotten. All meeting invites should have an agenda and that must be recapped at the start
|
|
||
| State as of 2026-10-20. | ||
|
|
||
| | Action | Owner | State | |
There was a problem hiding this comment.
Needs to have an ETA or a DFD (Date-for-a-date)
|
|
||
| This procedure covers Protective Stop meetings whose outcome belongs in the safety case: | ||
| documentation syncs, design and requirements reviews, test plan reviews, and any meeting | ||
| that changes a status in the [Safety Certification Readiness](safety_certification_readiness.md) |
There was a problem hiding this comment.
Things like the last meeting did not change the status but moved the needle - update the language
rajasimman-madhivanan
left a comment
There was a problem hiding this comment.
- The filename needs to start with a date in this format yyyymmdd - that way things are easy to find 2. What about establishing quorum and moving the meeting if the right stakeholders are not there? 3. Will every meeting be related to an IEC clause? If so, should that be in the meeting invite? 4. Write a short section on what to add to the meeting invite as well 5. How many people need to approve the PR? If there are 40 people attending the meeting what do you do?
| 1. Who is attending, and in what role. | ||
| 2. The topic, and the matrix IDs or IEC 61508 clauses it relates to. | ||
| 3. What the meeting must produce: a status update, a decision, or a review outcome. | ||
| 4. Whether the meeting is being transcribed. Transcripts are a note-taking aid only and are |
There was a problem hiding this comment.
Why is this needed?
| @@ -0,0 +1,160 @@ | |||
| --- | |||
There was a problem hiding this comment.
Create an opencode skill to generate meeting notes from this process doc and the meeting transcript.
| - Each finding, and whether it was accepted, rejected or deferred, with the reason. | ||
| - The outcome: approved, approved with changes, or not approved. | ||
|
|
||
| ## Cadence |
There was a problem hiding this comment.
Not needed
| @@ -0,0 +1,258 @@ | |||
| --- | |||
There was a problem hiding this comment.
Pull this out into its separate PR - no relation to the rest of the PR right?
… matrix - Meeting records are named YYYYMMDD_<topic>.md; date prefixes are kept in doc IDs so same-topic records don't collide (AGENTS.md exception added). - Add the invite contents, quorum rules, agenda recap and carry-over, ETA/DFD due dates on action items, and who must approve a record pull request. - IEC clauses in the invite only when the meeting has them. - Drop the transcription notice and the cadence section. - Readiness progress counts even when no status changes. - Add an opencode skill that drafts a meeting record from a transcript. - The readiness matrix moves to its own pull request.
IEC 61508 process and documentation obligations with status, action items and resolutions. IDs, grouping and wording are ours; only IEC 61508 clause numbers are referenced. Split out of #205 at review.
There was a problem hiding this comment.
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Adds a public meeting procedure and a first meeting record (the 2026-09-30 documentation kickoff) under a new Process section, covering roles, quorum, invites, a record template, and a public-filter table for what stays out of the record. Adds an opencode skill, pstop-meeting-notes, that drafts a record from a transcript by reading the procedure and the latest record first, applying the public filter, and holding off on PRs and issues until the user answers its open attribution and due-date questions. Wires the section into the sidebar and turns off numberPrefixParser in the Docusaurus config so date-prefixed filenames like 20260930_documentation_kickoff.md keep their full names, but the setting is global and also changes the URLs and IDs of existing number-prefixed docs.
Worth a look
- Global numberPrefixParser:false changes URLs and IDs of all existing number-prefixed docs —
website/docusaurus.config.ts:64· Escalate · medium- NOT verified (no proof, no reproducing execution) — needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 26 functions depend on the 26 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 26 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 26 function(s) in the blast radius were not formally verified this run
There was a problem hiding this comment.
I also checked two things beyond the inline finding. Setting numberPrefixParser: false for the whole site doesn't change any existing URLs or doc IDs, because the new meeting record is the only file under docs/ with a numeric prefix. And Process sharing category position: 4 with Design has no visible effect, because each top-level directory gets its own sidebar and the navbar sets the tab order explicitly.
Extended reasoning...
The change adds docs and Docusaurus config only: a new Process sidebar and navbar tab, a site-wide numberPrefixParser setting, an AGENTS.md exception, and an opencode skill. It touches no security-sensitive code. The note above only records concerns that were checked and ruled out beyond the inline finding.
| @@ -0,0 +1,72 @@ | |||
| --- | |||
| name: PStop Meeting Notes | |||
There was a problem hiding this comment.
🔴 opencode users will probably never be offered this skill, because its frontmatter name is not a valid skill name. name: PStop Meeting Notes has capitals and spaces. It also does not match the directory pstop-meeting-notes. opencode skill discovery requires lowercase hyphenated names that match the folder, so this skill should fail validation and be skipped. Fix: set name: pstop-meeting-notes, which is the name the PR description and folder already use, and keep the human-readable title in the H1.
Why this was flagged
The skill is loaded by opencode's skill discovery from .opencode/skills/pstop-meeting-notes/SKILL.md. Line 2 declares name: PStop Meeting Notes. The opencode / Agent Skills spec requires name to be 1-64 lowercase alphanumeric characters with single hyphens (^[a-z0-9]+(-[a-z0-9]+)*$) and to equal the containing directory name. This value has uppercase letters and spaces and does not equal pstop-meeting-notes, so the skill should fail validation and never appear in the agent's available skills. The PR's stated deliverable, an agent drafting meeting records from transcripts, then does nothing. This is the only skill in .opencode/skills/, so no working sibling in the repo shows another accepted format.
Verification: .opencode/skills/pstop-meeting-notes/SKILL.md line 2 reads name: PStop Meeting Notes. The opencode Skills docs and the Agent Skills spec say name must be lowercase alphanumeric with single hyphens (^[a-z0-9]+(-[a-z0-9]+)*$) and must match the name of the directory that holds SKILL.md. This value has uppercase letters and spaces, and it does not match the directory pstop-meeting-notes. When the loader enforces the spec, the skill is rejected or skipped.
There was a problem hiding this comment.
There was a problem hiding this comment.
Code review found no new issues
No new issues were found in this update; 1 finding from earlier reviews is still open above.
Still open from earlier reviews (1):
- 🔴
.opencode/skills/pstop-meeting-notes/SKILL.md:2—opencode users will probably never be offered this skill, because its frontmatter name is not a valid skill name. name:…
If you have decided not to act on one of these findings, resolve its thread (a reply alone leaves it open) and the next review stops counting it. To review this commit again now, use Re-run on its "Claude Code Review" check.
Action items from the 2026-09-30 PStop documentation kickoff (Raj's items). The readiness matrix was split out into #206, which is stacked on this PR.
What this adds
A new Process tab on the docs site:
docs/process/meeting_procedure.md) covers:docs/process/meetings/YYYYMMDD_<topic>.md), starting with the 2026-09-30 Documentation Kickoff.pstop-meeting-notes(.opencode/skills/pstop-meeting-notes/SKILL.md) drafts a record from a transcript by following the procedure.Config changes
AGENTS.md: adds a narrow exception to the no-dates-in-filenames rule, for meeting records only.website/docusaurus.config.ts: setsnumberPrefixParser: false, so the date prefix stays in each record's URL and doc ID. Without it, two records with the same topic would collide. No other page uses a numeric prefix.Confirmed
Verification
npm run buildinwebsite/passes. The broken-link check is clean.pre-commit runon the changed files passes.