This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git


The following commit(s) were added to refs/heads/main by this push:
     new 9774cc9  docs: extend Adopting the framework section for PR-skill 
adopter contract (#34)
9774cc9 is described below

commit 9774cc927b1d4cb02278d5e1a33ba660cb2d5ec2
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat May 2 18:20:44 2026 +0200

    docs: extend Adopting the framework section for PR-skill adopter contract 
(#34)
    
    Two doc surfaces updated to surface the four PR-skill scaffold
    files added in #33:
    
    - **Top-level README `## Adopting the framework`** — restructured
      into four subsections:
      - `Bootstrapping a new adopter` — three concrete steps (submodule
        add, copy `_template/`, symlink `.claude/skills/`) with the
        actual commands;
      - `Per-skill-family contract` — splits the adopter's required
        `<project-config>/` files by skill family (security workflow vs
        PR triage and review). Adopters who use only one family can
        delete the other family's scaffold;
      - `How skills resolve <project-config>/ paths` — explains the
        pure-text placeholder convention so adopters don't go hunting
        for an env var or build step;
      - `Keeping the submodule current` — preserves the existing
        `git submodule update --init --recursive` post-merge-hook
        guidance.
    - **`projects/_template/README.md`** — adds a `### PR triage and
      review` subsection listing the four PR-skill scaffold files
      (`pr-triage-config.md`, `pr-triage-comment-templates.md`,
      `pr-triage-ci-check-map.md`, `pr-maintainer-review-criteria.md`)
      with per-file purpose and which skills consume them. The
      "Checklist after copying" splits into three groups (security
      workflow / PR triage and review / common finishers) so adopters
      who only use one family can skip the other group's checks.
    
    doctoc TOCs regenerated.
    
    Both surfaces carry the same disclaimer that the framework
    currently embeds airflow-flavoured defaults inline in the PR-
    skill supporting files; a follow-up PR completes the extraction.
    Until then non-airflow adopters override by forking the relevant
    supporting file into their own `.claude/skills/<skill-name>/`.
    
    Generated-by: Claude Code (Claude Opus 4.7)
---
 README.md                    | 112 +++++++++++++++++++++++++++++++++++++++----
 projects/_template/README.md |  44 +++++++++++++++++
 2 files changed, 146 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index 139dd79..d656da6 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,10 @@
   - [State diagram](#state-diagram)
   - [Label reference](#label-reference)
 - [Adopting the framework](#adopting-the-framework)
+  - [Bootstrapping a new adopter](#bootstrapping-a-new-adopter)
+  - [Per-skill-family contract](#per-skill-family-contract)
+  - [How skills resolve `<project-config>/` 
paths](#how-skills-resolve-project-config-paths)
+  - [Keeping the submodule current](#keeping-the-submodule-current)
 
 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
 
@@ -988,11 +992,99 @@ their per-project configuration alongside it under
 `<project-config>/` (which resolves to `.apache-steward/` in the
 adopter's tracker root).
 
-To bootstrap a new adopter, copy [`projects/_template/`](projects/_template/)
-into `<project-config>/` in your tracker repo, fill in the TODO
-placeholders, and point the framework's skills at it via the path
-resolution documented in
-[`AGENTS.md` — Placeholder 
convention](AGENTS.md#placeholder-convention-used-in-skill-files).
+### Bootstrapping a new adopter
+
+Three one-time steps to integrate the framework into a new tracker
+repo:
+
+1. **Add the framework as a submodule** of your tracker repo at
+   `.apache-steward/apache-steward/`:
+
+   ```bash
+   cd path/to/your/tracker-repo
+   git submodule add https://github.com/apache/airflow-steward 
.apache-steward/apache-steward
+   ```
+
+2. **Copy the [`projects/_template/`](projects/_template/) scaffold**
+   into `.apache-steward/`, then `grep -rn TODO .apache-steward/` to
+   find every placeholder you need to fill in. The required files
+   vary by which skill families you're adopting — see
+   [Per-skill-family contract](#per-skill-family-contract) below.
+
+   ```bash
+   cp -r .apache-steward/apache-steward/projects/_template/. .apache-steward/
+   ```
+
+3. **Symlink `.claude/skills/`** in your tracker repo to the
+   framework's skill directory, so Claude Code (or another
+   `SKILL.md`-aware agent) loads the framework's skills against the
+   adopter's project configuration:
+
+   ```bash
+   ln -s .apache-steward/apache-steward/.claude/skills .claude/skills
+   ```
+
+The framework's
+[`setup-verify-steward`](.claude/skills/setup-verify-steward/SKILL.md)
+skill checks each of these and reports `✓ done / ✗ missing /
+⚠ partial` for the adopter integration — run it after step 3 to
+confirm the install landed.
+
+### Per-skill-family contract
+
+The `<project-config>/` files an adopter needs to populate depend
+on which skill families they want to use. Pick the families that
+match your project's needs — adopters who only use one family can
+delete the other family's scaffold files from their
+`.apache-steward/` directory.
+
+#### Security workflow — Steps 1–16 lifecycle
+
+Every skill in the [Security workflow](#security-workflow)
+section above consults at least
+[`<project-config>/project.md`](projects/_template/project.md) for
+identity. Beyond that, each skill reads only the files it needs:
+canned responses, scope labels, milestone conventions,
+title-normalisation rules, security-model pointers, release-train
+roster, fix-workflow specifics. The adopter's *file-by-file* index
+is in
+[`projects/_template/README.md`](projects/_template/README.md) —
+copy that into your `<project-config>/` and fill in every `TODO`.
+
+#### PR triage and review
+
+The [PR triage and review](#pr-triage-and-review) skills consult
+four scaffold files for project-specific knobs:
+
+| File | Used by |
+|---|---|
+| [`pr-triage-config.md`](projects/_template/pr-triage-config.md) | 
`pr-triage`, `pr-stats` |
+| 
[`pr-triage-comment-templates.md`](projects/_template/pr-triage-comment-templates.md)
 | `pr-triage` |
+| [`pr-triage-ci-check-map.md`](projects/_template/pr-triage-ci-check-map.md) 
| `pr-triage` |
+| 
[`pr-maintainer-review-criteria.md`](projects/_template/pr-maintainer-review-criteria.md)
 | `pr-maintainer-review` |
+
+Each PR-skill's `SKILL.md` carries an `## Adopter configuration`
+section that documents which of these files it reads. The framework
+currently embeds airflow-flavoured defaults inline in the skills'
+supporting files; non-airflow adopters override by forking the
+relevant supporting file into their own
+`.claude/skills/<skill-name>/`. A follow-up PR will complete the
+extraction so the skills read exclusively from `<project-config>/`.
+
+### How skills resolve `<project-config>/` paths
+
+The framework uses a documented placeholder convention: the literal
+string `<project-config>/` in any skill file resolves to the
+directory containing the adopter's `project.md` — typically
+`.apache-steward/` in the tracker root. The substitution rule is
+documented in
+[`AGENTS.md` § Placeholder 
convention](AGENTS.md#placeholder-convention-used-in-skill-files);
+it's a pure-text reference, no env-var or build step required. The
+adopter keeps the actual content gitignored at the adopter level if
+they want to (the framework itself is project-agnostic and ships no
+per-project content).
+
+### Keeping the submodule current
 
 **Always run `git submodule update --init --recursive` after every
 pull on the tracker repository.** A plain `git pull` on the tracker
@@ -1011,8 +1103,8 @@ SH
 chmod +x .git/hooks/post-merge
 ```
 
-The framework's `setup-upgrade-steward` skill (in this repo's
-[`.claude/skills/setup-upgrade-steward/SKILL.md`](.claude/skills/setup-upgrade-steward/SKILL.md))
-upgrades the framework checkout itself; if the user is consuming
-the framework as a tracker submodule, the skill reminds them to
-follow up with submodule update on the parent tracker.
+The framework's
+[`setup-upgrade-steward`](.claude/skills/setup-upgrade-steward/SKILL.md)
+skill upgrades the framework checkout itself; if the user is
+consuming the framework as a tracker submodule, the skill reminds
+them to follow up with submodule update on the parent tracker.
diff --git a/projects/_template/README.md b/projects/_template/README.md
index 1312f9d..47498aa 100644
--- a/projects/_template/README.md
+++ b/projects/_template/README.md
@@ -11,6 +11,7 @@
     - [CVE-allocation mechanics](#cve-allocation-mechanics)
     - [Remediation workflow](#remediation-workflow)
     - [Editorial + reporter-facing](#editorial--reporter-facing)
+    - [PR triage and review](#pr-triage-and-review)
   - [Checklist after copying](#checklist-after-copying)
   - [Cross-references](#cross-references)
 
@@ -87,14 +88,57 @@ the rest.
 | [`naming-conventions.md`](naming-conventions.md) | Project-specific 
editorial rules. Keep only the ones that differ from the generic rules in 
`../../AGENTS.md`. |
 | [`canned-responses.md`](canned-responses.md) | Reusable reporter-facing 
reply templates. |
 
+### PR triage and review
+
+These files configure the
+[`pr-triage`](../../.claude/skills/pr-triage/SKILL.md),
+[`pr-stats`](../../.claude/skills/pr-stats/SKILL.md), and
+[`pr-maintainer-review`](../../.claude/skills/pr-maintainer-review/SKILL.md)
+skills. Adopters who only use the security skills can delete these
+four files; adopters running maintainer-side PR-queue management
+fill them in.
+
+| File | Purpose |
+|---|---|
+| [`pr-triage-config.md`](pr-triage-config.md) | Committers team handle, 
area-label prefix, project-specific labels (`ready for maintainer review`, 
etc.), grace windows. Used by `pr-triage` and `pr-stats`. |
+| [`pr-triage-comment-templates.md`](pr-triage-comment-templates.md) | 
Comment-body URLs (PR quality criteria, two-stage triage rationale), 
AI-attribution footer wording, project display name. Used by `pr-triage`. |
+| [`pr-triage-ci-check-map.md`](pr-triage-ci-check-map.md) | CI-check name 
pattern → category name + doc-URL mapping for the violations comment. Used by 
`pr-triage`. |
+| [`pr-maintainer-review-criteria.md`](pr-maintainer-review-criteria.md) | 
List of project's review-criteria source files (repo-wide AGENTS.md, 
code-review docs, per-area AGENTS.md), security-model calibration doc, 
backport-branch pattern, section-anchor URLs. Used by `pr-maintainer-review`. |
+
+> The framework currently ships with airflow-flavoured defaults
+> inline in the supporting files of each PR-skill (e.g.
+> 
[`pr-triage/comment-templates.md`](../../.claude/skills/pr-triage/comment-templates.md)
+> embeds airflow's PR-quality-criteria URL). A follow-up PR will
+> complete the extraction so the skills read exclusively from
+> `<project-config>/`. Until then, non-airflow adopters override by
+> forking the relevant supporting file into their own
+> `.claude/skills/<skill-name>/`. Each PR-skill's `SKILL.md`
+> documents the override path in its `Adopter configuration`
+> section.
+
 ## Checklist after copying
 
 - [ ] `cp -R projects/_template projects/<name>` done.
 - [ ] Every `TODO` in `project.md` resolved (grep: `grep -n TODO 
projects/<name>/project.md`).
+
+**Security workflow** (delete this group if not using the security
+skills):
+
 - [ ] `scope-labels.md` lists at least one scope label (exactly-one-of rule).
 - [ ] `security-model.md` points at the project's authoritative Security-Model 
URL.
 - [ ] `release-trains.md` has at least one current release branch + its RM.
 - [ ] `canned-responses.md` has at least the *"Confirmation of receiving the 
report"* template filled in (the `security-import-issues` skill sends this 
verbatim).
+
+**PR triage and review** (delete this group if not using the
+`pr-*` skills):
+
+- [ ] `pr-triage-config.md` — committers team handle and area-label prefix 
filled in.
+- [ ] `pr-triage-comment-templates.md` — `<quality_criteria_url>`, 
`<two_stage_triage_rationale_url>`, and `<project_display_name>` filled in.
+- [ ] `pr-triage-ci-check-map.md` — at least one CI-check pattern row filled 
in (or the catch-all row pointing at the project's static-checks doc).
+- [ ] `pr-maintainer-review-criteria.md` — at least one repo-wide 
review-criteria source file declared.
+
+**Common finishers**:
+
 - [ ] `config/active-project.md` updated to the new directory name if this 
working tree should target the new project.
 - [ ] Root `README.md` *"Current projects"* table updated with a row for the 
new project + a link to this `README.md`.
 - [ ] `prek run --all-files` passes.

Reply via email to