Skip to content

Comments

[docs] Consolidate developer specifications into instructions file (2026-02-23)#17794

Merged
pelikhan merged 2 commits intomainfrom
docs/consolidate-dev-instructions-2026-02-23-f141a5e25f759039
Feb 23, 2026
Merged

[docs] Consolidate developer specifications into instructions file (2026-02-23)#17794
pelikhan merged 2 commits intomainfrom
docs/consolidate-dev-instructions-2026-02-23-f141a5e25f759039

Conversation

@github-actions
Copy link
Contributor

Updates scratchpad/dev.md from v2.6 to v2.8 to document features introduced in PR #17769 (safe outputs refactor).

Changes Made

  • Analyzed 61 specification files in scratchpad/ — 0 tone issues, 0 formatting issues
  • Updated scratchpad/dev.md: v2.6 → v2.8 (+158 lines, 1794 → 1949)

New Sections Added

Safe Outputs System

  • Templatable Integer Fields: max/expires accept $\{\{ inputs.* }} expressions
  • Blocked Deny-List: glob-pattern-based user blocking for assign-to-user and unassign-from-user
  • Error Code Registry: 7 standardized categories (ERR_VALIDATION, ERR_PERMISSION, ERR_API, ERR_CONFIG, ERR_NOT_FOUND, ERR_PARSE, ERR_SYSTEM)
  • Safe Outputs Prompt Templates: template files in actions/setup/md/ with XML wrapping

Security Best Practices

  • Cross-Prompt Injection Attack (XPIA) Defense: new subsection covering defense policy and MCP template expression escaping

Workflow Patterns

Additional Resources

  • Agent Instruction Files: documents .github/agents/developer.instructions.md and create-safe-output-type.agent.md

Updated Content

  • GitHub Operations Categories: added unassign-from-user
  • Quick Reference Safe Output Defaults table: added assign-to-user and unassign-from-user rows with note on templatable fields
  • Security Checklist: added XPIA, template escaping, and blocked deny-list items
  • Table of Contents: added Additional Resources entry

Validation

✅ All markdown validated
✅ 9 Mermaid diagrams maintained
✅ 90 code blocks with language tags
✅ Consistent technical tone throughout
✅ Logical structure maintained

Review Notes

Please review:

  1. Configuration breaking changes section for accuracy against implementation
  2. Blocked deny-list documentation matches assign_to_user.go and unassign_from_user.go
  3. Error code registry table matches actions/setup/js/error_codes.cjs

See the discussion [Developer Documentation Consolidation - 2026-02-23] for the full consolidation report.

References:

Generated by Developer Documentation Consolidator

  • expires on Feb 25, 2026, 12:06 AM UTC

Documents the following new features from PR #17769 (safe outputs refactor):

- New `unassign-from-user` safe output type with blocked deny-list support
- Blocked deny-list glob patterns for `assign-to-user` and `unassign-from-user`
- Standardized error code registry (7 categories: ERR_VALIDATION, ERR_PERMISSION, etc.)
- Templatable integer fields: `max`/`expires` accept `${{ inputs.* }}` expressions
- Safe outputs prompt template system (actions/setup/md/ with XML wrapping)
- XPIA (Cross-Prompt Injection Attack) defense section in Security Best Practices
- MCP template expression escaping in heredocs to prevent template injection
- Configuration breaking changes: status-comment decoupling and sandbox.agent migration
- Agent instruction files documentation (.github/agents/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Contributor Author

✅ Pull request created: #17794

@github-actions github-actions bot added automation documentation Improvements or additions to documentation labels Feb 23, 2026
@pelikhan pelikhan marked this pull request as ready for review February 23, 2026 00:15
Copilot AI review requested due to automatic review settings February 23, 2026 00:15
@pelikhan pelikhan merged commit b25ee24 into main Feb 23, 2026
@pelikhan pelikhan deleted the docs/consolidate-dev-instructions-2026-02-23-f141a5e25f759039 branch February 23, 2026 00:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the developer documentation (scratchpad/dev.md) from version 2.6 to 2.8, consolidating specifications for features introduced in PR #17769 (safe outputs refactor). The update adds comprehensive documentation for the new safe outputs prompt template system, security enhancements, and configuration changes.

Changes:

  • Added documentation for safe outputs enhancements: templatable integer fields (max/expires), blocked deny-lists for user assignment operations, and standardized error code registry (7 categories)
  • Documented safe outputs prompt template system with XML-wrapped files in actions/setup/md/
  • Added XPIA (Cross-Prompt Injection Attack) defense policy and MCP template expression escaping guidance
  • Documented configuration breaking changes: status-comment decoupling from reaction triggers and sandbox.agent: false migration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


The `max` and `expires` fields accept both literal integers and GitHub Actions template expressions (`${{ inputs.* }}`). The expression is evaluated at runtime to allow workflow inputs to control limits.

**Blocked Deny-List** (for `assign-to-user` and `unassign-from-user`):
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

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

The heading "Blocked Deny-List" is redundant since "blocked" and "deny-list" convey similar meanings. Consider simplifying to either "User Deny-List", "Blocked Users", or "User Blocking" for clarity.

Suggested change
**Blocked Deny-List** (for `assign-to-user` and `unassign-from-user`):
**Blocked Users** (for `assign-to-user` and `unassign-from-user`):

Copilot uses AI. Check for mistakes.
Comment on lines 1940 to 1941
- v2.6 (2026-02-20): Fixed 8 tone issues across 4 spec files, documented post-processing extraction pattern and CLI flag propagation rule from PR #17316, analyzed 61 files
- v2.5 (2026-02-19): Fixed 6 tone issues in engine review docs, added Engine-Specific MCP Config Delivery section (Gemini pattern), analyzed 61 files
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

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

The version jumps from v2.6 to v2.8, skipping v2.7. If this is intentional (e.g., v2.7 was never published or was rolled back), consider adding a note to clarify why v2.7 is absent from the version history to avoid confusion.

Suggested change
- v2.6 (2026-02-20): Fixed 8 tone issues across 4 spec files, documented post-processing extraction pattern and CLI flag propagation rule from PR #17316, analyzed 61 files
- v2.5 (2026-02-19): Fixed 6 tone issues in engine review docs, added Engine-Specific MCP Config Delivery section (Gemini pattern), analyzed 61 files
- v2.7: Version skipped; internal draft was rolled back before publication and never released.
- v2.6 (2026-02-20): Fixed 8 tone issues across 4 spec files, documented post-processing extraction pattern and CLI flag propagation rule from PR #17316, analyzed 61 files

Copilot uses AI. Check for mistakes.
Comment on lines +1330 to +1338
# ❌ Old behavior: reaction trigger auto-enabled status comment
on:
reaction: "+1"

# ✅ New: enable each independently
on:
reaction: "+1"
status-comment: true # Explicitly enable the started/completed comment
```
Copy link

Copilot AI Feb 23, 2026

Choose a reason for hiding this comment

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

Potential discrepancy with issue #15831: The issue description uses ai-reaction: eyes as the configuration field, but this documentation shows reaction: "+1" in the on: section. Please verify that the field name and location in the configuration are accurate. If reaction: is the correct field name as a trigger under on:, and ai-reaction: was just shorthand in the issue description, this is fine. Otherwise, the examples should be updated to match the actual configuration schema.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant