[spdd] Daily spec work plan - 2026-07-16 (rotation 15–19)#46044
Merged
Conversation
9 tasks
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- checkout-behavior-specification: add T-CHK-014 path-escape test ID, normative compiler error message format for mutual exclusivity (§4.0), and §7.3 Safeguards section with MUST-level norms - ai-credits-specification: add §3.7 Entities subsection (AICRecord, PricingCatalogEntry, InvocationRecord) and §5.5 catalog staleness SLA - bash-command-parser-specification: add §11.3 Safeguards with empty-result default-deny and parse-error denial MUST norms - security-architecture-spec: add Last Revalidation note (2026-07-15) to existing Sync Notes section - specs/awf-config-sources-compliance/README.md: new file with DriftRecord conformance test IDs T-DR-001 through T-DR-010 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add missing tests and documentation for daily spec work plan
[spdd] Daily spec work plan - 2026-07-16 (rotation 15–19)
Jul 16, 2026
pelikhan
approved these changes
Jul 16, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Expands gh-aw specifications with compliance IDs, safeguards, entity schemas, and validation metadata, alongside regenerated workflow outputs.
Changes:
- Adds checkout, parser, and AI-credit requirements.
- Introduces DriftRecord compliance test IDs.
- Refreshes generated workflow metadata and scheduling.
Show a summary per file
| File | Description |
|---|---|
specs/security-architecture-spec.md |
Records the latest validation date. |
specs/awf-config-sources-compliance/README.md |
Defines DriftRecord compliance IDs. |
docs/src/content/docs/specs/checkout-behavior-specification.md |
Adds checkout safeguards and tests. |
docs/src/content/docs/specs/bash-command-parser-specification.md |
Adds parser denial safeguards. |
docs/src/content/docs/specs/ai-credits-specification.md |
Adds entities and catalog staleness rules. |
.github/workflows/skillet.lock.yml |
Refreshes generated action metadata. |
.github/workflows/release.lock.yml |
Refreshes generated setup-go metadata. |
.github/workflows/hourly-ci-cleaner.lock.yml |
Refreshes generated checkout metadata. |
.github/workflows/avenger.lock.yml |
Refreshes generated checkout metadata. |
.github/workflows/agentic-auto-upgrade.yml |
Changes the weekly upgrade 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: 11
- Review effort level: Medium
|
|
||
| ### 4.0 Compiler Error Message Requirements | ||
|
|
||
| When `github-token` and `github-app` are both specified on the same checkout entry, the compiler MUST reject the workflow with an error. The normative error message format is: |
| - **T-CHK-011**: `checkout.safe-outputs-github-app` is the sole supported safe_outputs auth override per checkout entry | ||
| - **T-CHK-012**: safe_outputs checkout token MUST NOT use `safe-outputs.github-app` or `safe-outputs.github-token`; only `safe-outputs-github-app` (per entry) or `GITHUB_TOKEN` are permitted | ||
| - **T-CHK-013**: Checkout-manifest generation includes safe_outputs auth metadata without persisting resolved tokens | ||
| - **T-CHK-014**: Checkout-manifest path resolution MUST reject paths that are absolute (e.g., `/etc/passwd`) or escape the workspace root (e.g., `../../sensitive`); rejected paths MUST produce an error and MUST NOT be used for checkout or file lookup |
|
|
||
| 1. **Token write-to-disk prohibition**: `safe-outputs-github-app` minted tokens MUST NOT be written to disk at any point before the `safe_outputs` job begins its push/PR operations. Token values MUST be passed only as environment variables or via GitHub Actions secret interpolation at the step level. Any intermediate file, log entry, or env export that materializes the token value to disk MUST be treated as a security violation. | ||
|
|
||
| 2. **Manifest path rejection**: Checkout-manifest paths that are absolute or that escape the workspace root MUST be rejected before any file I/O is performed against them. The rejection MUST produce an actionable error message (see §3.4 and T-CHK-014). |
|
|
||
| The following MUST-level norms govern credential and token safety during checkout and `safe_outputs` operations: | ||
|
|
||
| 1. **Token write-to-disk prohibition**: `safe-outputs-github-app` minted tokens MUST NOT be written to disk at any point before the `safe_outputs` job begins its push/PR operations. Token values MUST be passed only as environment variables or via GitHub Actions secret interpolation at the step level. Any intermediate file, log entry, or env export that materializes the token value to disk MUST be treated as a security violation. |
|
|
||
| The following MUST-level norms apply to all Class I (Integration Consumer) conforming implementations: | ||
|
|
||
| 1. **Empty-result default-deny**: When `extractCommandNamesFromPipeline` returns an empty list (`length === 0`), the integration MUST apply default-deny and MUST NOT proceed with command execution. An empty result is never implicit authorization. This norm strengthens the requirement stated in §2.2 and §5, and applies regardless of whether the empty result arises from a blank input, a fully structural-keyword input, or a parse that yields only redirections. |
| - The number of days elapsed since that sync. | ||
| - A recommendation to run the catalog refresh process. | ||
|
|
||
| This is a SHOULD-level norm; catalog staleness does not constitute a hard failure, but implementations MUST NOT suppress the warning if the threshold is exceeded. Implementations that cannot determine the last sync timestamp SHOULD treat the catalog as potentially stale and emit the warning unconditionally. |
Comment on lines
+310
to
+314
| When the elapsed time since the last successful sync exceeds 7 days, the implementation SHOULD emit a re-sync warning. The warning MUST include: | ||
|
|
||
| - The timestamp of the last successful sync. | ||
| - The number of days elapsed since that sync. | ||
| - A recommendation to run the catalog refresh process. |
Comment on lines
+3
to
+4
| This directory contains conformance test IDs and fixture stubs for the `DriftRecord` entity | ||
| defined in [§6.5 of the AWF Config Canonical Sources Specification](../awf-config-sources-spec.md#65-driftrecord-entity-schema). |
| 1. Assign a new `T-DR-xxx` identifier (increment from the last used ID). | ||
| 2. Add a row to the table above with the test ID, requirement reference (§ number), and description. | ||
| 3. Implement the test in the conformance test file listed above. | ||
| 4. Cross-reference the new test ID from the relevant subsection of `specs/awf-config-sources-spec.md`. |
| on: | ||
| schedule: | ||
| - cron: "21 3 * * 5" # Weekly (auto-upgrade) | ||
| - cron: "11 4 * * 6" # Weekly (auto-upgrade) |
Contributor
|
🎉 This pull request is included in a new release. Release: |
This was referenced Jul 16, 2026
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.
Addresses 8 SPDD checklist items across 5 spec files: missing compliance test IDs, underspecified safeguards, absent entity definitions, and sync cross-references.
checkout-behavior-specification.mdgithub-token/github-appmutual exclusivity — format includes the offendingrepositoryvaluesafe-outputs-github-apptokens MUST NOT be written to disk before thesafe_outputsjob begins; manifest path rejection; credential cleanup scopeai-credits-specification.mdAICRecord,PricingCatalogEntry,InvocationRecord; cross-referenced from §3.3 and §4bash-command-parser-specification.mdextractCommandNamesFromPipelineresult MUST default-deny; parse errors MUST NOT silently allow executionsecurity-architecture-spec.mdspecs/security-architecture-spec-validation.mdspecs/awf-config-sources-compliance/README.md(new file)DriftRecord(§6.5 ofawf-config-sources-spec.md)