Skip to content

docs(process): meeting procedure, meeting records and meeting-notes skill - #205

Open
rajasimman-madhivanan wants to merge 3 commits into
mainfrom
docs/process-meetings-and-readiness
Open

rajasimman-madhivanan wants to merge 3 commits into
mainfrom
docs/process-meetings-and-readiness

Conversation

@rajasimman-madhivanan

@rajasimman-madhivanan rajasimman-madhivanan commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • Meeting Procedure (docs/process/meeting_procedure.md) covers:
    • what goes in the invite: agenda with time boxes and outcomes, required vs optional attendees, related items or clauses only when there are any, pre-reads at a fixed commit, and carried-over items
    • quorum: if it isn't met, reschedule or proceed with provisional decisions
    • recapping the agenda at the start, and carrying over items that weren't covered
    • ETA or DFD due dates on action items
    • the public/private filter for records
    • extra fields for review meetings
    • a record template
    • approval rule: one required attendee other than the note-taker must approve. Optional attendees are never asked. No answer within two working days counts as no objection, except for provisional decisions.
  • Meeting Records (docs/process/meetings/YYYYMMDD_<topic>.md), starting with the 2026-09-30 Documentation Kickoff.
  • opencode skill 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: sets numberPrefixParser: 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

  • Kickoff attendees: Raj, David, Ilia and Emerson, all required
  • Owner of the "shared agent instructions" action item: left as TBD

Verification

  • npm run build in website/ passes. The broken-link check is clean.
  • pre-commit run on the changed files passes.

… 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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to have an ETA or a DFD (Date-for-a-date)

Comment thread docs/process/meeting_procedure.md Outdated

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)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Things like the last meeting did not change the status but moved the needle - update the language

@rajasimman-madhivanan rajasimman-madhivanan left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 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?

Comment thread docs/process/meeting_procedure.md Outdated
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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this needed?

@@ -0,0 +1,160 @@
---

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Create an opencode skill to generate meeting notes from this process doc and the meeting transcript.

Comment thread docs/process/meeting_procedure.md Outdated
- Each finding, and whether it was accepted, rejected or deferred, with the reason.
- The outcome: approved, approved with changes, or not approved.

## Cadence

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not needed

@@ -0,0 +1,258 @@
---

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
rajasimman-madhivanan added a commit that referenced this pull request Oct 22, 2026
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.
@rajasimman-madhivanan rajasimman-madhivanan changed the title docs(process): meeting procedure and safety certification readiness matrix docs(process): meeting procedure, meeting records and meeting-notes skill Oct 22, 2026
@rajasimman-madhivanan
rajasimman-madhivanan added this pull request to stack #207 October 22, 2026 20:48
@rajasimman-madhivanan
rajasimman-madhivanan marked this pull request as ready for review October 22, 2026 20:52

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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):

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.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants