docs(spdd): add safeguards, edge cases, ops order, norms, and requirements to five spec files#46283
Merged
Merged
Conversation
11 tasks
…tenance, norms, and requirements sections Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…orms, and requirements sections Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update SPDD framing for daily spec review on 2026-07-17
docs(spdd): add safeguards, edge cases, ops order, norms, and requirements to five spec files
Jul 17, 2026
Contributor
|
Nice work adding the missing SPDD sections across five spec files! The changes are well-structured and the descriptions are thorough. 👍 A few things that would strengthen this PR:
If you'd like a hand adding test coverage:
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds SPDD safeguards, operational guidance, governance, and traceability to five scratchpad specifications.
Changes:
- Documents failure modes, edge cases, and synchronization policy.
- Adds CLI governance, exit-code guidance, and requirement mappings.
- Refreshes generated workflow metadata and changes the auto-upgrade schedule.
Show a summary per file
| File | Description |
|---|---|
scratchpad/breaking-cli-rules.md |
Expands examples, exit codes, and approval norms. |
scratchpad/artifact-naming-compatibility.md |
Documents artifact-flattening edge cases. |
scratchpad/architecture.md |
Adds package-map synchronization policy. |
scratchpad/agents/hierarchical-agents.md |
Adds memory safeguards and execution ordering. |
scratchpad/agents/hierarchical-agents-quickstart.md |
Adds requirements traceability. |
.github/workflows/skillet.lock.yml |
Normalizes checkout version annotations. |
.github/workflows/release.lock.yml |
Normalizes setup-go version annotations. |
.github/workflows/hourly-ci-cleaner.lock.yml |
Normalizes checkout version annotations. |
.github/workflows/avenger.lock.yml |
Normalizes checkout version annotations. |
.github/workflows/agentic-auto-upgrade.yml |
Changes the generated weekly schedule. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 10/10 changed files
- Comments generated: 9
- Review effort level: Medium
Comment on lines
+163
to
+165
| The shared memory path `/tmp/gh-aw/repo-memory-default/memory/meta-orchestrators/` is ephemeral and may be absent or unreadable at runtime. Meta-orchestrators **must** treat it as optional and degrade gracefully under the following failure modes: | ||
|
|
||
| 1. **Memory path missing (fresh environment):** The `/tmp/gh-aw/repo-memory-default/` directory may not exist on the first run or in a freshly provisioned runner. Each meta-orchestrator must check for path existence before reading and continue without historical context if the directory is absent. No error should be surfaced to the user; instead, the orchestrator starts with an empty baseline. |
| | 2 | Invalid usage | No (for new checks) | | ||
| | Exit Code | Meaning | Subcommand(s) | Source Reference | Breaking to Change | | ||
| |-----------|---------|---------------|-----------------|-------------------| | ||
| | 0 | Success — no action needed | `gh aw upgrade` (already up to date) | `pkg/cli/upgrade_command.go` | Yes — changing a success to non-zero breaks scripts | |
| A changeset marked `major` (breaking change) requires explicit review and approval before merge: | ||
|
|
||
| - **Minimum quorum:** At least **2 maintainer approvals** on the PR. A single maintainer approval is insufficient for breaking changes, regardless of how small the change appears. | ||
| - **Maintainer role:** A maintainer is any contributor listed in `CODEOWNERS` with write or admin access to the repository. For internal contributors, this maps to the `@github/gh-aw-maintainers` team. External contributors can identify current maintainers via the `CODEOWNERS` file at the repository root. |
| 2. A corresponding row is added to (or removed from) the Package Reference table. | ||
| 3. The `Last updated` date on line 3 is refreshed. | ||
|
|
||
| **Tracking:** A CI lint rule or OWNERS note enforcing this policy is tracked in a future issue. Until that check is automated, the PR author is responsible for updating the diagram as part of their change. |
| | Quick-Start Step | Specification / Acceptance Criterion | | ||
| |------------------|--------------------------------------| | ||
| | Check Workflow Health Dashboard pinned issue for critical issues | Workflow Health Manager must create or update a pinned issue on each run; spec: `scratchpad/agents/hierarchical-agents.md` §Workflow Health Manager | | ||
| | Address P0/P1 issues immediately | Priority labels `priority-p0` and `priority-p1` must be applied to all issues created by meta-orchestrators; spec: `scratchpad/agents/hierarchical-agents.md` §Key Principles | |
| | Check Workflow Health Dashboard pinned issue for critical issues | Workflow Health Manager must create or update a pinned issue on each run; spec: `scratchpad/agents/hierarchical-agents.md` §Workflow Health Manager | | ||
| | Address P0/P1 issues immediately | Priority labels `priority-p0` and `priority-p1` must be applied to all issues created by meta-orchestrators; spec: `scratchpad/agents/hierarchical-agents.md` §Key Principles | | ||
| | Review Campaign Manager report if campaigns are active | Campaign Manager must generate a discussion report on each daily run when ≥1 active campaign exists; spec: `scratchpad/agents/hierarchical-agents.md` §Campaign Manager | | ||
| | Review Agent Performance Report discussion | Agent Performance Analyzer must publish a performance-report discussion on each daily run; spec: `scratchpad/agents/hierarchical-agents.md` §Agent Performance Analyzer | |
| on: | ||
| schedule: | ||
| - cron: "21 3 * * 5" # Weekly (auto-upgrade) | ||
| - cron: "11 4 * * 6" # Weekly (auto-upgrade) |
| When all three meta-orchestrators are triggered simultaneously (e.g., on the same daily schedule), the following order governs their execution and memory access: | ||
|
|
||
| 1. **Workflow Health Manager** — runs first. It has no dependency on the other orchestrators' outputs and produces the foundational health snapshot (`workflow-health-latest.md`) that the other two may read. | ||
| 2. **Campaign Manager** — runs second. It reads the workflow health snapshot to cross-reference failing workflows against active campaigns before writing `campaign-manager-latest.md`. |
Comment on lines
+213
to
+222
| Remove deprecated top-level `defaults` field from workflow frontmatter schema | ||
|
|
||
| **⚠️ Breaking Change**: The `defaults` field has been removed from the workflow frontmatter schema. | ||
|
|
||
| **Migration guide:** | ||
| - Workflows that declare `defaults:` at the top level must be updated. | ||
| - Move any `defaults.run.shell` settings into the individual step definitions. | ||
| - Run `gh aw compile` after updating; compilation will fail with a schema validation error if `defaults:` is still present, making affected workflows easy to identify. | ||
|
|
||
| **Reason**: The `defaults` block was deprecated in v0.24.0 when per-step shell configuration was introduced. It is now removed to reduce schema surface area. |
Contributor
|
🎉 This pull request is included in a new release. Release: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five scratchpad/spec files lacked SPDD framing: missing Safeguards, incomplete Norms, no Operations ordering, and absent Requirements traceability. This PR adds the missing sections across all five files.
hierarchical-agents.md/tmp/gh-aw/repo-memory-default/…) — missing directory, checkout failure, corrupted file, concurrent write collision, permission denied — each with explicit graceful-degradation behaviorartifact-naming-compatibility.mdflattenSingleFileArtifacts()— empty artifact, unexpected multi-file artifact (silent miss risk), filename collision at root, artifact-name collision with existing root file, non-directory entry in artifact listarchitecture.mdpkg/must update the diagram and package table; CI lint enforcement tracked as a future issuebreaking-cli-rules.mdCODEOWNERS(not an opaque internal team name)hierarchical-agents-quickstart.mdhierarchical-agents.md,safe-outputs-specification.md,DEVGUIDE.md)