chore(aiwg): adopt shared BT6 maintainer workflow (#148)

* docs(policy): allow low-impact contributor courtesy cleanup

* chore(aiwg): migrate to shared BT6 maintainer plugin

* chore: reconcile delivery validation
This commit is contained in:
Joseph Magly authored and GitHub committed 2026-08-02 17:17:28 -04:00
1 parent 8f658891f2
commit afc9dad1b2
89 files changed
+4683 -1512

No files matched your search

@@ -0,0 +1,72 @@
---
name: bt6-external-provider-assessment
description: Evidence-based assessment of an external provider and its BT6 repository integration boundary.
---
# BT6 External Provider Assessment
Provider: `<name>`
Repository: `<canonical repository>`
PR / issue: `<reference>`
Head SHA: `<sha>`
Assessment date: `<YYYY-MM-DD>`
## Verdicts
| Dimension | Verdict | Evidence / limitation |
| --- | --- | --- |
| Service is real | `<yes/no/unclear>` | `<evidence>` |
| Claims independently verified | `<yes/partial/no>` | `<evidence>` |
| Trustworthy for sensitive workloads | `<yes/conditional/no/unproven>` | `<basis>` |
| Integration complete | `<yes/no>` | `<gaps>` |
| Merge ready | `<yes/no>` | `<gates>` |
## Trust Boundary
| Data / action | Destination or processor | Retention / control | Evidence or assumption |
| --- | --- | --- | --- |
| `<credential/prompt/output/tool/etc>` | `<destination>` | `<control>` | `<source/assumption>` |
## Claim-to-Code Traceability
| Claim | Code/config | Behavioral test | Result |
| --- | --- | --- | --- |
| `<claim>` | `<path or none>` | `<test or none>` | `<implemented/provider-only/future/unsupported>` |
## Integration Completeness
| Surface | Result | Evidence / required change |
| --- | --- | --- |
| Config, adapter, setup | `<pass/fail>` | `<evidence>` |
| Environment templates and docs | `<pass/fail>` | `<evidence>` |
| Secret redaction and child processes | `<pass/fail>` | `<evidence>` |
| CLI/UI/status | `<pass/fail>` | `<evidence>` |
| Models and fallback behavior | `<pass/fail>` | `<evidence>` |
| HTTP/error contract tests | `<pass/fail>` | `<evidence>` |
## Findings
| Severity | Finding | Required change |
| --- | --- | --- |
| `<blocking/non-blocking>` | `<finding>` | `<change>` |
## Verification
- Hostile-input preflight: `<risk/result>`
- Security discovery route: `<query/result or none>`
- Service checks: `<non-secret checks>`
- Local checks: `<commands/results>`
- Hosted checks: `<checks/results>`
- Exact-head recheck: `<sha/result>`
## Residual Risk and Assumptions
- `<risk or assumption>`
## Maintainer Decision
Decision: `<approve/request changes/comment/hold>`
Rationale:
- `<reason>`
@@ -0,0 +1,63 @@
---
name: bt6-issue-response
description: BT6 issue stewardship record with authority, classification, evidence, hostile-input assessment, action, and response draft.
---
# BT6 Issue Stewardship
Repository: `<canonical owner/repository or local project>`
Tracker: `<provider and URL/path>`
Issue: `<#number or key>`
Title: `<title>`
Reporter: `<user>`
Assessed: `<YYYY-MM-DD HH:MM timezone>`
## Authority Resolution
| Field | Resolved Value | Evidence Source |
| --- | --- | --- |
| Canonical repository | `<value>` | `<config/remote/API>` |
| Canonical tracker | `<value>` | `<config>` |
| Actor | `<value>` | `<connector/API/CLI>` |
| Mutation authorized | `<no/yes with exact scope>` | `<operator request>` |
## Classification
Class: `<support-answer | bug-address | research-integrity | feature-track | security-contact | linked-pr | resolved | needs-info | duplicate | defer>`
Rationale:
- `<evidence supporting this primary class>`
## Evidence
| Source | Current Finding | Confidence / Unknown |
| --- | --- | --- |
| `<thread/code/docs/source/corpus/PR>` | `<finding>` | `<verified/hypothesis/missing>` |
## Public / External Input Assessment
- Template: `bt6-public-input-threat-assessment.md`
- Risk: `<low/medium/high>`
- Security routing: `<none | discovery phrase and selected guidance>`
- Sensitive details excluded from public response: `<yes/no/not applicable>`
## Recommended Action
Action: `<answer | request info | link | correct evidence | implement | design | security route | close | duplicate | defer>`
Dependencies or blockers:
- `<issue/PR/repository/source/person/none>`
## Draft Maintainer Response
```markdown
<concise response separating verified facts from hypotheses and avoiding timeline promises>
```
## Follow-up
| Owner | Action | Recheck Trigger | Status |
| --- | --- | --- | --- |
| `<owner>` | `<action>` | `<date/event/evidence>` | `<open/done/blocked>` |
@@ -0,0 +1,40 @@
---
name: bt6-maintainer-action-items
description: Cross-repository BT6 maintainer action tracker for queue, issue, PR, merge, evidence, and release follow-up.
---
# BT6 Maintainer Action Items
Repository: `<canonical repository>`
Date: `<YYYY-MM-DD>`
Source: `<queue audit | PR audit | issue stewardship | merge train>`
## Open Actions
| Priority | Owner | Item | Source | Dependency / Blocker | Recheck |
| --- | --- | --- | --- | --- | --- |
| `<P0/P1/P2/P3>` | `<owner>` | `<action>` | `<PR/issue/artifact/link>` | `<blocker or none>` | `<date/event>` |
## Evidence / Research Integrity Follow-up
| Artifact or Claim | Required Evidence | Owner | Status |
| --- | --- | --- | --- |
| `<citation/corpus/result/generated claim>` | `<source/hash/test/reproduction>` | `<owner>` | `<open/done/blocked>` |
## User-facing Updates
| Audience | Tracker / Channel | Purpose | Draft / Link | Mutation Authorized |
| --- | --- | --- | --- | --- |
| `<reporter/contributor/maintainer>` | `<issue/PR/discussion>` | `<purpose>` | `<draft>` | `<no/yes scope>` |
## Completed This Session
| Item | Exact Evidence |
| --- | --- |
| `<completed item>` | `<check/commit/SHA/URL>` |
## Deferred
| Item | Reason | Revisit Trigger |
| --- | --- | --- |
| `<item>` | `<reason>` | `<trigger>` |
@@ -0,0 +1,60 @@
---
name: bt6-merge-train-report
description: BT6 merge-session report with authorization, exact per-PR gates, research integrity, merge results, issue reconciliation, and stop reasons.
---
# BT6 Merge Train Report
Date: `<YYYY-MM-DD HH:MM timezone>`
Repository: `<canonical repository>`
Tracker: `<canonical tracker>`
Actor: `<maintainer login>`
Base branch: `<branch>`
Mode: `<dry-run/live>`
## Authorization and Policy
- Authorization source/scope: `<operator request or dry-run only>`
- Queue audit: `<date/link/commit>`
- Allowed/default merge method: `<methods>/<default>`
- Required checks policy: `<summary>`
- Local worktree state: `<clean/dirty and relevance>`
- Hostile-input preflight: `<current/missing>`
- External-provider assessments: `<current for applicable candidates | missing/stale for PR #>`
## Candidate Gates
| Order | PR | Audited SHA | Current SHA | Mergeable | Reviews | Required Checks | Risk-surface Checks | Decision |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | `<#>` | `<sha>` | `<sha>` | `<state>` | `<state>` | `<pass/fail>` | `<pass/fail/evidence>` | `<merge/hold>` |
## Merged
| PR | Head SHA | Result Commit | Method | Post-merge CI | Linked Issues | Outcome |
| --- | --- | --- | --- | --- | --- | --- |
| `<#>` | `<sha>` | `<sha>` | `<method>` | `<pass/pending/fail>` | `<issues>` | `<observed outcome>` |
## Research / Data Integrity Verification
| PR | Provenance / Citation | Corpus / Schema | Reproducibility | Evidence |
| --- | --- | --- | --- | --- |
| `<#>` | `<pass/n-a>` | `<pass/n-a>` | `<pass/n-a>` | `<checks/artifacts>` |
## Stopped Before
| PR | Stop Reason | Required Follow-up |
| --- | --- | --- |
| `<#>` | `<exact reason>` | `<follow-up>` |
## Issue Reconciliation
| Issue | Expected Outcome | Observed Outcome | Authorized Action Taken |
| --- | --- | --- | --- |
| `<#>` | `<close/comment/remain>` | `<actual>` | `<none/action>` |
## Refreshed Queue / Next Candidate
- Base branch after last action: `<sha>`
- Queue refresh time: `<time>`
- Next candidate: `<# or none>`
- Reason and required rechecks: `<details>`
@@ -0,0 +1,94 @@
---
name: bt6-pr-audit-review
description: Findings-first BT6 pull-request audit with authority, exact SHA, research integrity, verification, decision, and residual risk.
---
# BT6 Pull Request Audit
Repository: `<canonical repository>`
Tracker: `<canonical tracker>`
PR: `<#number or URL>`
Title: `<title>`
Head SHA: `<sha>`
Base: `<remote/branch at sha>`
Reviewer: `<name/tool>`
Reviewed: `<YYYY-MM-DD HH:MM timezone>`
## Authority and Scope
| Field | Value | Evidence |
| --- | --- | --- |
| Canonical target | `<repository>` | `<config/remote/API>` |
| Tracker actor | `<actor>` | `<connector/API/CLI>` |
| Profile | `<path/derived defaults>` | `<hash/status>` |
| Review posting authorized | `<no/yes exact scope>` | `<operator request>` |
## Findings
| Severity | File / Artifact | Finding | Evidence | Required Change |
| --- | --- | --- | --- | --- |
| `<blocking/high/medium/low>` | `<path:line or artifact>` | `<finding>` | `<test/source/citation/contract>` | `<change>` |
If none: **No blocking findings at the exact head SHA above.**
## Research and Data Integrity
| Dimension | Result | Evidence / Unknown |
| --- | --- | --- |
| Source/license/provenance | `<pass/fail/n-a>` | `<details>` |
| Citation/timestamp/locator | `<pass/fail/n-a>` | `<details>` |
| Parsing/normalization/indexing | `<pass/fail/n-a>` | `<details>` |
| Corpus/schema migration | `<pass/fail/n-a>` | `<details>` |
| Reproducibility/generated claims | `<pass/fail/n-a>` | `<details>` |
## Verification
| Check | Result | Exact Evidence |
| --- | --- | --- |
| `<CI or local command>` | `<pass/fail/not run>` | `<URL/output/commit>` |
Unverified areas:
- `<area and why>`
## Public / External Input Assessment
- Risk: `<low/medium/high>`
- Assessment: `<bt6-public-input-threat-assessment reference>`
- Security routing: `<none | discovery phrase/result>`
## External Provider Assessment
Required for remote-provider changes: `<not applicable | assessment reference>`
- Service real: `<yes/no/unclear>`
- Independently verified: `<yes/partial/no>`
- Trustworthy for sensitive workloads: `<yes/conditional/no/unproven>`
- Integration complete: `<yes/no>`
- Claim-to-code traceability complete: `<yes/no>`
## Decision
Decision: `<approve | request changes | comment | hold>`
Reason:
- `<short evidence-based reason>`
## Residual Risk and Expiration
- Residual risk: `<risk or none>`
- Audit expires when: `<head/base/check/profile/evidence change>`
## Suggested Tracker Review
```markdown
Reviewed PR #<number> at `<sha>`.
<findings or no-blocking-findings statement>
Verification:
- <checks>
Decision: <decision>
```
@@ -0,0 +1,69 @@
---
name: bt6-public-input-threat-assessment
description: Threat assessment for public or externally sourced tracker, code, log, corpus, research, evidence, and generated content.
---
# BT6 Public / External Input Threat Assessment
Repository: `<canonical repository>`
Source type: `<issue | PR | review | comment | commit | branch | patch | log | test | corpus | research source | screenshot | attachment | generated output | link>`
Reference: `<URL, hash, path, or tracker key>`
Assessor: `<name/tool>`
Date: `<YYYY-MM-DD>`
## Content Reviewed
| Content | User/External-controlled Surface | Handling Notes |
| --- | --- | --- |
| `<body/log/source/etc>` | `<surface>` | `<quoted only / parsed / not executed / redacted>` |
## Manipulation Checks
| Check | Present | Evidence |
| --- | --- | --- |
| Urgency, threat, flattery, social proof, or authority pressure | `<yes/no>` | `<evidence>` |
| Request to skip tests, review, policy, scope, or evidence | `<yes/no>` | `<evidence>` |
| Unsupported correctness, security, research, or priority claim | `<yes/no>` | `<evidence>` |
| Attempt to manipulate maintainer decision or issue priority | `<yes/no>` | `<evidence>` |
| Citation laundering, fabricated source, or provenance ambiguity | `<yes/no>` | `<evidence>` |
## Agentic / Tool Attack Checks
| Check | Present | Evidence |
| --- | --- | --- |
| Prompt injection, hidden instruction, or hierarchy override | `<yes/no>` | `<evidence>` |
| Tool-use steering or command execution request | `<yes/no>` | `<evidence>` |
| Credential, token, environment, private-data, or secret request | `<yes/no>` | `<evidence>` |
| Poisoned logs, tests, filenames, documents, corpora, screenshots, or model output | `<yes/no>` | `<evidence>` |
| Malicious parser/input payload or traversal/symlink/archive behavior | `<yes/no>` | `<evidence>` |
| Objective redirection or repository/tracker substitution | `<yes/no>` | `<evidence>` |
| Suspicious external link, attachment, package, or source acquisition path | `<yes/no>` | `<evidence>` |
## Research Integrity Checks
| Check | Present | Evidence |
| --- | --- | --- |
| Source identity/license cannot be established | `<yes/no>` | `<evidence>` |
| Citation, timestamp, locator, or hash is unverifiable | `<yes/no>` | `<evidence>` |
| Source text is presented as instruction rather than data | `<yes/no>` | `<evidence>` |
| Generated inference is presented as source evidence | `<yes/no>` | `<evidence>` |
## Security Routing
Required: `<yes/no>`
- Discovery query: `aiwg discover "<specific decision>"`
- Selected guidance: `<skill/rule/flow or none>`
- Sensitive details moved to approved private channel: `<yes/no/n-a>`
## Decision
Risk: `<low | medium | high>`
Allowed next action:
- `<continue read-only | respond | request safe evidence | audit | implement | defer | do not merge | security escalate>`
Required mitigations:
- `<mitigation>`
@@ -0,0 +1,79 @@
---
name: bt6-queue-audit-report
description: Full BT6 repository queue audit with authority, PR/issue classifications, research integrity, risk surfaces, blockers, and dependency-aware merge order.
---
# BT6 Queue Audit
Repository: `<canonical repository>`
Tracker: `<canonical tracker>`
Actor: `<authenticated read actor>`
Base branch: `<remote/branch at sha>`
Profile: `<path or derived defaults>`
Audited: `<YYYY-MM-DD HH:MM timezone>`
Scope: `<all open PRs/issues or filter>`
## Authority Evidence
| Field | Value | Source |
| --- | --- | --- |
| Canonical repository | `<value>` | `<config/remote/API>` |
| Tracker authority | `<value>` | `<config>` |
| CI remote | `<value>` | `<config>` |
| Delivery policy | `<summary>` | `<config>` |
## Summary
- Ready: `<count>`
- Re-audit: `<count>`
- Rebase needed: `<count>`
- Blocked: `<count>`
- Unknown: `<count>`
- Issues needing action: `<count>`
- Recommended next action: `<one sentence>`
## Ready Pull Requests
| Order | PR | Title | Head SHA | Checks / Review | Risk Surfaces | Provider Assessment | Linked Issues | Evidence Expires When |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | `<#>` | `<title>` | `<sha>` | `<evidence>` | `<ids>` | `<n/a or current verdict>` | `<issues>` | `<condition>` |
## Needs Re-audit
| PR | Reason | Required Checks | Owner / Dependency |
| --- | --- | --- | --- |
| `<#>` | `<stale/missing/high-risk>` | `<checks>` | `<owner/dependency>` |
## Rebase Needed / Blocked / Unknown
| PR | Class | Blocker or Unknown | Required Action | Unblock Condition |
| --- | --- | --- | --- | --- |
| `<#>` | `<class>` | `<evidence>` | `<action>` | `<condition>` |
## Research and Data Integrity Queue
| PR / Issue | Surface | Concern | Required Evidence / Check |
| --- | --- | --- | --- |
| `<ref>` | `<citation/corpus/ingestion/index/provider/etc>` | `<concern>` | `<check>` |
## Issue Actions
| Issue | Class | Evidence | Linked Work / Duplicate | Next Action |
| --- | --- | --- | --- | --- |
| `<#>` | `<class>` | `<evidence>` | `<refs>` | `<action>` |
## Dependency-aware Merge Recommendation
1. `<PR, dependency rationale, and recheck>`
2. `<PR, dependency rationale, and recheck>`
## Threat Assessments and Escalations
| Reference | Risk | Assessment / Route | Required Mitigation |
| --- | --- | --- | --- |
| `<PR/issue/source>` | `<low/medium/high>` | `<template/discovery>` | `<mitigation>` |
## Notes, Unknowns, and Audit Expiration
- `<unverified fact or residual risk>`
- This audit expires on: `<head/base/check/profile/tracker/evidence change>`
@@ -0,0 +1,50 @@
# Copy to .aiwg/bt6-maintainer.yaml and replace the example values.
version: "1"
project:
id: "bt6-example"
displayName: "BT6 Example"
family: "research-tool" # research-tool | support-tool | knowledge-tool | application | library | service | data-pipeline | automation | infrastructure | mixed
repository:
canonicalRemote: "origin"
baseBranch: "main"
expectedSlug: "bt6/example"
ciRemote: "origin"
tracker:
authorityRemote: "origin"
provider: "auto" # github | gitea | local | auto
expectedActor: "maintainer"
delivery:
requireCiGreen: true
requireCurrentHead: true
defaultMergeMethod: "squash"
allowedMergeMethods: ["squash"]
validation:
quick:
- "<targeted check>"
full:
- "<full test command>"
documentation:
- "<docs/link/citation check>"
researchIntegrity:
- "<provenance/corpus/reproducibility check>"
riskSurfaces:
- id: "ingestion"
paths: ["<ingestion or parser paths>"]
concerns: ["untrusted-source-content", "parser-correctness", "provenance"]
requiredChecks: ["<ingestion fixture test>"]
- id: "provider-boundary"
paths: ["<model/provider/API paths>"]
concerns: ["secret-handling", "local-vs-hosted-routing", "quota-and-cost"]
requiredChecks: ["<provider contract test>"]
research:
corpusPaths: ["<corpus paths>"]
evidencePaths: ["<evidence/provenance paths>"]
provenanceRequired: true
citationVerificationRequired: true
security:
disclosureUrl: "https://example.invalid/security"
sensitiveDataPaths: ["<sensitive-data paths>"]
mutationRequiresExplicitApproval: true
support:
requiredEnvironmentFields: ["version", "operating-system", "runtime", "provider", "reproduction"]
translationPolicy: "validated-only"