Skip to content

Close SPDD daily spec-review action items for security-architecture and access-control specs - #52531

Merged
pelikhan merged 4 commits into
mainfrom
copilot/spdd-daily-spec-work-plan-2026-08-13
Aug 13, 2026
Merged

Close SPDD daily spec-review action items for security-architecture and access-control specs#52531
pelikhan merged 4 commits into
mainfrom
copilot/spdd-daily-spec-work-plan-2026-08-13

Conversation

Copilot AI commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Daily SPDD review (rotation indices 10–14) flagged several REASONS-canvas gaps and stale sync/validation debts across specs/safe-output-outcome-evaluation.md, specs/security-architecture-spec-summary.md, specs/security-architecture-spec-validation.md, specs/security-architecture-spec.md, and scratchpad/github-mcp-access-control-specification.md.

Re-validation & discrepancy closure (specs/security-architecture-spec-validation.md)

  • Recorded a decision log for Trigger Add workflow: githubnext/agentics/weekly-research #3 (repos/allowed-repos divergence): deferred, since the companion spec already resolved it as a documented deprecated alias with no behavioral change, and TestValidateGitHubGuardPolicy already covers both spellings.
  • Closed the 3 "Minor Discrepancies" (Pre-Activation job, Detection job naming, Conclusion job) by cross-referencing a new Appendix D example.
  • Confirmed the Specification Accuracy Summary evidence-location paths (sanitize_content_core.cjs, checkout_pr_branch.cjs) still exist.

New example (specs/security-architecture-spec.md)

  • Added Appendix D Example 5, an abridged compiled .lock.yml excerpt showing pre_activationdetectionsafe_outputsconclusion job wiring.

Structure mapping (specs/safe-output-outcome-evaluation.md)

  • Added a "Structure" subsection mapping each of the 30 numbered safe-output-type sections to its implementing Go file under pkg/workflow/, e.g.:

    Section Output type Implementation file(s)
    §1 create_pull_request pkg/workflow/create_pull_request.go
    §8 close_issue pkg/workflow/close_entity_helpers.go

Safeguards table (specs/security-architecture-spec-summary.md)

  • Added a compile-time vs. runtime enforcement table to Appendix H, classifying each of the 6 best practices (e.g. sanitized context and strict mode are compiler-enforced; domain allowlists and RBAC are runtime-enforced).

§8.5 / §C.4 tightening (scratchpad/github-mcp-access-control-specification.md)

  • Labeled the §8.5 Combined Evaluation Order steps with the formal P5_NotBlocked/P6_IntegrityMet predicate names used in §11 and github_mcp_access_control_formal_test.go, removing ambiguity about which prose step maps to which guard predicate/error code.
  • Added a concrete exponential-backoff pseudo-code example to §C.4, distinguishing retryable secondary-rate-limit 403s from non-retryable permission-denial 403s, and fail-closed behavior on exhausted retries.

No production code changed — all edits are to specification/scratchpad markdown.

Copilot AI linked an issue Aug 13, 2026 that may be closed by this pull request
10 tasks
Copilot AI and others added 3 commits August 13, 2026 16:21
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…trol spec

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…koff example

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Review and validate 5 specification files for SPDD Close SPDD daily spec-review action items for security-architecture and access-control specs Aug 13, 2026
Copilot AI requested a review from pelikhan August 13, 2026 16:25
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for closing out the daily SPDD review items! 🎯

This PR comprehensively addresses spec validation gaps across five interconnected specification files:

What's included:

  • Re-validation decision log (Trigger Add workflow: githubnext/agentics/weekly-research #3 deferral with rationale)
  • Closure of 3 minor discrepancies via new Appendix D example
  • Structure mapping in safe-output-outcome-evaluation.md
  • Compile-time vs. runtime safeguards table in Appendix H
  • §8.5/§C.4 tightening with formal predicate labeling and backoff pseudo-code

Process adherence:
This follows the internal agentic workflow documented in CONTRIBUTING.md — implemented by Copilot coding agent with core-team review.

Note: This PR is flagged 🟡 only because specs lack traditional unit test coverage. That's expected and appropriate for documentation updates. The spec changes are focused, well-described, and cross-referenced per the daily SPDD work plan.

Ready for merge once reviewers sign off! 🚀

Generated by ✅ Contribution Check · auto · 48.3 AIC · ⌖ 4.04 AIC · ⊞ 8.8K ·

@pelikhan
pelikhan marked this pull request as ready for review August 13, 2026 18:19
Copilot AI balanced review requested due to automatic review settings August 13, 2026 18:19
@pelikhan
pelikhan merged commit d260db9 into main Aug 13, 2026
@pelikhan
pelikhan deleted the copilot/spdd-daily-spec-work-plan-2026-08-13 branch August 13, 2026 18:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates security and safe-output specifications to close SPDD review gaps and align documentation with current implementations.

Changes:

  • Adds compiled job-structure and enforcement examples.
  • Maps safe-output sections to implementation files.
  • Clarifies access-control predicates and rate-limit handling.
Show a summary per file
File Description
specs/security-architecture-spec.md Adds job-wiring example.
specs/security-architecture-spec-validation.md Closes discrepancies and records alias decision.
specs/security-architecture-spec-summary.md Classifies safeguard enforcement timing.
specs/safe-output-outcome-evaluation.md Maps output types to source files.
scratchpad/github-mcp-access-control-specification.md Clarifies predicates and retry behavior.

Review details

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 5/5 changed files
  • Comments generated: 6
  • Review effort level: Balanced

| Practice | Enforcement | Mechanism |
|---|---|---|
| BP-01 Sanitized context | Compile-time | Compiler rewrites `${{ github.event.* }}` expressions in `prompt:` to `${{ steps.sanitized.outputs.text }}` during compilation; unsanitized expressions never reach the generated `.lock.yml` |
| BP-02 Strict mode for production | Compile-time | `strict: true` causes the compiler to reject workflows with write permissions on the `agent` job or missing `safe-outputs:`; violations fail `gh aw compile` |
|---|---|---|
| BP-01 Sanitized context | Compile-time | Compiler rewrites `${{ github.event.* }}` expressions in `prompt:` to `${{ steps.sanitized.outputs.text }}` during compilation; unsanitized expressions never reach the generated `.lock.yml` |
| BP-02 Strict mode for production | Compile-time | `strict: true` causes the compiler to reject workflows with write permissions on the `agent` job or missing `safe-outputs:`; violations fail `gh aw compile` |
| BP-03 Specific domain allowlists | Runtime | The AWF network proxy/firewall enforces the configured `network.allowed` domain list against outbound requests during workflow execution; a wildcard (`"*"`) is accepted at compile time but only its effect is observed at runtime |

| Practice | Enforcement | Mechanism |
|---|---|---|
| BP-01 Sanitized context | Compile-time | Compiler rewrites `${{ github.event.* }}` expressions in `prompt:` to `${{ steps.sanitized.outputs.text }}` during compilation; unsanitized expressions never reach the generated `.lock.yml` |
| BP-02 Strict mode for production | Compile-time | `strict: true` causes the compiler to reject workflows with write permissions on the `agent` job or missing `safe-outputs:`; violations fail `gh aw compile` |
| BP-03 Specific domain allowlists | Runtime | The AWF network proxy/firewall enforces the configured `network.allowed` domain list against outbound requests during workflow execution; a wildcard (`"*"`) is accepted at compile time but only its effect is observed at runtime |
| BP-04 Pin actions to SHAs | Compile-time (advisory) / CI-time (enforced) | The compiler itself does not reject unpinned `uses:` references; SHA-pinning is enforced by CI tooling (`actionlint`, `poutine`, `zizmor`) run against compiled `.lock.yml` files, not by the compiler at `gh aw compile` time (see Appendix G.1 coverage gap) |
| BP-05 Enable threat detection | Compile-time (job generation) / Runtime (detection execution) | The compiler generates a `detection` job when `threat-detection.enabled` is not explicitly `false`; the actual AI-based/TruffleHog scan and the `needs.detection.outputs.success` gate on `safe_outputs` are evaluated at runtime |

#### Example 5: Pre-Activation, Detection, and Conclusion Job Structure

The following excerpt (abridged from a compiled `.lock.yml`) shows the three implementation-detail jobs referenced in the Minor Discrepancies section of `specs/security-architecture-spec-validation.md`: `pre_activation` (role-based access control ahead of `activation`), `detection` (runtime manifestation of the Threat Detection Layer, Section 9), and `conclusion` (cleanup/summary reporting job that always runs).
# ... run summary, cleanup, and failure reporting ...
```

**Behavior**: `pre_activation` gates `activation` on role membership; `detection` runs after `agent` and gates `safe_outputs` on a successful threat-detection conclusion; `conclusion` always runs last (subject to `always()`) to report status regardless of upstream success or failure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[spdd] Daily spec work plan - 2026-08-13

3 participants