ワンクリックで
update-pm-ownership
Regenerate Article-PM-Ownership-Reference.mdx after the squad CSV or article list changes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Regenerate Article-PM-Ownership-Reference.mdx after the squad CSV or article list changes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
localize an article, translate an article into Spanish French German, localize release notes, translate release notes, translate KB article
write a new KB article, generate knowledge base article, draft a KB doc, create a new article, write documentation, create MDX article
update a KB article, rename a document, edit article content, update screenshots, swap screenshots, remove content, update file paths, cross-file updates, update steps in a process, combine articles, split an article, merge articles
Automate the connector PR/Jira review workflow: match open GitHub PRs to Jira tickets, check approval status, post follow-ups, merge, and close tickets. Use when Jared asks to review connector PRs, run the connector dashboard, follow up on stale tickets, merge a specific connector ticket, or when handling a publish or migration request from Arun.
Generate user-friendly release notes by diffing the latest git tag against the previous tag and summarizing the changes. Use when the user asks to "generate release notes", "write release notes for the latest release", "summarize the latest release", or similar. Saves a shareable MDX file to `releaseNotes/` and a sanitized external version to `releaseNotesExternal/`.
Revise the MDX content in the current branch's PR for Domo style guide compliance and MDX code conventions — then preview the diff before committing and pushing.
| name | update-pm-ownership |
| user-invocable | true |
| description | Regenerate Article-PM-Ownership-Reference.mdx after the squad CSV or article list changes |
| argument-hint | describe what changed (e.g. 'new CSV', 'added 5 connector articles', 'PM reassignment for Magic ETL') |
Regenerate Article-PM-Ownership-Reference.mdx to reflect changes in the squad ownership CSV, new articles added to s/article/, or PM reassignments.
The user has provided: $ARGUMENTS
Article-PM-Ownership-Reference.mdx maps every article in s/article/ to its owning Feature (using the same nomenclature as the internal squad CSV) and PM. It is generated by scripts/build-pm-ownership.py, which cross-references:
Feature - Owning Squad, PM, Eng, UX.csv — the authoritative squad/PM rosterdocs.json — nav group hierarchy used to infer which feature each article belongs toAsk the user (or infer from $ARGUMENTS) which of these scenarios applies:
s/article/ since the reference was last generatedFor scenario 4, skip to Manual correction below.
If the CSV changed (scenarios 1 or 3), read the updated file and compare it to what the script currently parses:
head -20 'Feature - Owning Squad, PM, Eng, UX.csv'
Check for:
NAV_FEATURE dict or KEYWORD_RULES list need a new entry to route articles to this feature? If a new feature was added, articles that should map to it may currently be falling back to a broader catch-all. Ask the user to describe what the new feature covers so you can add the right routing rule.NAV_FEATURE, KEYWORD_RULES) must also be updated so the new name is used instead of the old one.scripts/build-pm-ownership.py § Parse CSV). Verify any new duplicates are handled correctly.If articles were added (scenarios 2 or 3), check whether the new articles would be matched correctly by the existing routing logic:
# Articles added since last commit to main
git diff main...HEAD --name-only -- 's/article/*.mdx' | head -30
For each new article, predict what feature the script would assign:
docs.json:
grep "article-filename" docs.json
NAV_FEATURE in the script. If the group maps to a correct feature, no change is needed.NAV_FEATURE (new nav group added with the new articles), add a mapping entry.docs.json), check whether the title/excerpt would trigger the right KEYWORD_RULES entry.Open scripts/build-pm-ownership.py and make only the targeted changes identified in steps 2–3. The two places to edit are:
NAV_FEATURE dict (lines ~55–232)Maps nav group names to Feature names. Add a new entry if:
docs.json and isn't already coveredFormat: 'Nav Group Name': 'Feature Name from CSV',
KEYWORD_RULES list (lines ~261–395)Regex-based fallback used when nav group matching doesn't resolve a feature. Add a new entry if:
Format: (r'keyword pattern', 'Feature Name from CSV'),
Important: Keyword rules are evaluated in order — place more specific patterns before broader ones to avoid false positives. Word-boundary anchors (\b) prevent partial-word matches (e.g. r'\bforms?\b' instead of r'form').
After editing, confirm the Feature names you added exactly match the CSV:
grep "Feature Name" 'Feature - Owning Squad, PM, Eng, UX.csv'
python3 scripts/build-pm-ownership.py
Review the stats output:
Verify a sample of the newly changed assignments in Article-PM-Ownership-Reference.mdx:
# Articles in the affected feature area
grep "^| Feature Name" Article-PM-Ownership-Reference.mdx | head -10
# A specific new article
grep "new-article-filename.mdx" Article-PM-Ownership-Reference.mdx
# Any "(no PM listed)" entries (should only be Application Security)
grep "(no PM listed)" Article-PM-Ownership-Reference.mdx
If any articles are mis-assigned, return to step 4 and adjust the routing rules. Do not hand-edit the MDX output — all corrections must go through the script so the next regeneration is also correct.
The script automatically pads all table columns so every pipe character aligns at the same position in every row (raw-length padding, so pipes align in a plain-text editor). Confirm the output is consistent:
python3 -c "
with open('Article-PM-Ownership-Reference.mdx') as f:
lines = [l.rstrip('\n') for l in f]
widths = set(len(l) for l in lines if l.startswith('| '))
print('Distinct row lengths:', widths)
print('Expected: exactly one value')
"
If more than one length is reported, the padding logic in scripts/build-pm-ownership.py has a bug — check the pad_table() function in the Write MDX section. All 1,822+ rows should be identical in raw length.
If the user reports a specific mis-assignment (e.g. "article X should be Feature Y, not Feature Z"):
head -10 s/article/filename.mdx
grep "filename" docs.json
NAV_FEATURE entry, keyword false positive, etc.).After the user confirms the output looks correct:
git add Article-PM-Ownership-Reference.mdx scripts/build-pm-ownership.py
Commit message format:
docs: regenerate Article PM Ownership Reference
<one line describing what changed — e.g. "updated for June 2026 CSV with Magic ETL PM reassignment">
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Do not commit Feature - Owning Squad, PM, Eng, UX.csv unless the user explicitly asks — they may have pasted a working copy and the CSV is not yet final.
NAV_FEATURE and KEYWORD_RULES must match the CSV's "Feature" column exactly (case-sensitive) — a mismatch causes the "Features assigned that are NOT in CSV" warning.docs.json at runtime, so any nav restructuring automatically changes group-based assignments on the next run. Nav changes that rename or add groups may need a new NAV_FEATURE entry._Last generated: date in the MDX header is hardcoded in the script's output section. After editing the script for a new date, search for _Last generated: and update the date string before running.