From 438013f32a046797e36be3d80aa5a592c980852e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:53:17 +0000 Subject: [PATCH 1/3] Initial plan From 4b268e8e0f4ea688cafcee96f87c42840d835e54 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:58:05 +0000 Subject: [PATCH 2/3] Initial plan for moving specs/ to scratchpad/ Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/breaking-change-checker.lock.yml | 12 ++++++++++++ .github/workflows/duplicate-code-detector.lock.yml | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index d14d780fde9..a831d7a2c1a 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1295,4 +1295,16 @@ jobs: setupGlobals(core, github, context, exec, io); const { main } = require('/opt/gh-aw/actions/safe_output_handler_manager.cjs'); await main(); + - name: Assign copilot to created issues + if: steps.process_safe_outputs.outputs.issues_to_assign_copilot != '' + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + env: + GH_AW_ISSUES_TO_ASSIGN_COPILOT: ${{ steps.process_safe_outputs.outputs.issues_to_assign_copilot }} + with: + github-token: ${{ secrets.GH_AW_AGENT_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} + script: | + const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io); + const { main } = require('/opt/gh-aw/actions/assign_copilot_to_created_issues.cjs'); + await main(); diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 71be8e3471e..fa5de710d39 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1316,4 +1316,16 @@ jobs: setupGlobals(core, github, context, exec, io); const { main } = require('/opt/gh-aw/actions/safe_output_handler_manager.cjs'); await main(); + - name: Assign copilot to created issues + if: steps.process_safe_outputs.outputs.issues_to_assign_copilot != '' + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + env: + GH_AW_ISSUES_TO_ASSIGN_COPILOT: ${{ steps.process_safe_outputs.outputs.issues_to_assign_copilot }} + with: + github-token: ${{ secrets.GH_AW_AGENT_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} + script: | + const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io); + const { main } = require('/opt/gh-aw/actions/assign_copilot_to_created_issues.cjs'); + await main(); From 7c2f7a36a70d5ededde720927ff56ca61d6a2204 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:00:08 +0000 Subject: [PATCH 3/3] Move specs/ to scratchpad/ and update all references Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .../agents/agentic-campaign-designer.agent.md | 2 +- .github/agents/developer.instructions.md | 98 +++++++++---------- .github/aw/generate-agentic-campaign.md | 2 +- .../breaking-change-checker.lock.yml | 6 +- .github/workflows/breaking-change-checker.md | 6 +- .../workflows/copilot-agent-analysis.lock.yml | 6 +- .github/workflows/copilot-agent-analysis.md | 6 +- .github/workflows/daily-code-metrics.lock.yml | 2 +- .github/workflows/daily-code-metrics.md | 2 +- .../workflows/daily-firewall-report.lock.yml | 4 +- .github/workflows/daily-firewall-report.md | 4 +- .../workflows/daily-issues-report.lock.yml | 8 +- .github/workflows/daily-issues-report.md | 8 +- .../daily-observability-report.lock.yml | 6 +- .../workflows/daily-observability-report.md | 6 +- .github/workflows/daily-regulatory.lock.yml | 24 ++--- .github/workflows/daily-regulatory.md | 22 ++--- .../workflows/daily-secrets-analysis.lock.yml | 2 +- .github/workflows/daily-secrets-analysis.md | 2 +- .../daily-testify-uber-super-expert.lock.yml | 18 ++-- .../daily-testify-uber-super-expert.md | 14 +-- .../developer-docs-consolidator.lock.yml | 38 +++---- .../workflows/developer-docs-consolidator.md | 32 +++--- .github/workflows/go-fan.lock.yml | 20 ++-- .github/workflows/go-fan.md | 18 ++-- .github/workflows/issue-arborist.lock.yml | 4 +- .github/workflows/issue-arborist.md | 4 +- .../workflows/layout-spec-maintainer.lock.yml | 26 ++--- .github/workflows/layout-spec-maintainer.md | 22 ++--- .github/workflows/shared/metrics-patterns.md | 32 +++--- AGENTS.md | 14 +-- CONTRIBUTING.md | 22 ++--- DEVGUIDE.md | 8 +- docs/campaign-workers.md | 2 +- ...et-the-workflows-continuous-improvement.md | 2 +- pkg/cli/list_command_test.go | 2 +- .../templates/generate-agentic-campaign.md | 2 +- pkg/constants/constants.go | 2 +- pkg/parser/import_processor.go | 6 +- pkg/styles/theme.go | 2 +- pkg/workflow/agent_validation.go | 2 +- ...fact_manager_workflows_integration_test.go | 2 +- pkg/workflow/bundler_runtime_validation.go | 2 +- pkg/workflow/bundler_safety_validation.go | 2 +- pkg/workflow/bundler_script_validation.go | 2 +- pkg/workflow/compiler_filters_validation.go | 2 +- pkg/workflow/docker_validation.go | 2 +- pkg/workflow/engine_validation.go | 2 +- pkg/workflow/env_mirror.go | 4 +- pkg/workflow/expression_validation.go | 2 +- pkg/workflow/mcp_config_validation.go | 2 +- pkg/workflow/npm.go | 2 +- pkg/workflow/npm_validation.go | 2 +- pkg/workflow/pip.go | 2 +- pkg/workflow/pip_validation.go | 2 +- pkg/workflow/prompt_step_helper.go | 2 +- .../repository_features_validation.go | 2 +- pkg/workflow/runtime_validation.go | 2 +- pkg/workflow/schema_validation.go | 2 +- pkg/workflow/strict_mode_validation.go | 2 +- pkg/workflow/strings.go | 2 +- pkg/workflow/template_injection_validation.go | 6 +- pkg/workflow/template_validation.go | 2 +- {specs => scratchpad}/README.md | 0 {specs => scratchpad}/actions.md | 0 .../agent-container-testing.md | 0 {specs => scratchpad}/agent-sessions.md | 24 ++--- .../agents/hierarchical-agents-quickstart.md | 0 .../agents/hierarchical-agents.md | 0 .../artifact-naming-compatibility.md | 0 {specs => scratchpad}/artifacts.md | 0 {specs => scratchpad}/breaking-cli-rules.md | 2 +- {specs => scratchpad}/campaigns-files.md | 0 {specs => scratchpad}/capitalization.md | 0 {specs => scratchpad}/changesets.md | 0 {specs => scratchpad}/cli-command-patterns.md | 6 +- {specs => scratchpad}/code-organization.md | 0 .../debugging-action-pinning.md | 0 .../end-to-end-feature-testing.md | 0 .../error-recovery-patterns.md | 4 +- {specs => scratchpad}/errors.md | 0 {specs => scratchpad}/file-inlining.md | 0 {specs => scratchpad}/firewall-log-parsing.md | 0 {specs => scratchpad}/gastown.md | 0 .../github-actions-security-best-practices.md | 0 ...github-mcp-access-control-specification.md | 4 +- {specs => scratchpad}/go-type-patterns.md | 0 {specs => scratchpad}/gosec.md | 0 {specs => scratchpad}/labels.md | 0 {specs => scratchpad}/layout.md | 2 +- {specs => scratchpad}/mcp_logs_guardrails.md | 0 {specs => scratchpad}/mdflow-comparison.md | 0 {specs => scratchpad}/mdflow.md | 2 +- {specs => scratchpad}/metrics-glossary.md | 0 {specs => scratchpad}/mods/README.md | 0 {specs => scratchpad}/mods/jsonschema-go.md | 0 {specs => scratchpad}/oh-my-code.md | 4 +- {specs => scratchpad}/repo-memory.md | 0 .../safe-output-environment-variables.md | 0 .../safe-output-handlers-refactoring.md | 0 {specs => scratchpad}/safe-output-messages.md | 0 .../safe-outputs-specification.md | 2 +- {specs => scratchpad}/schema-validation.md | 0 {specs => scratchpad}/security_review.md | 0 .../string-sanitization-normalization.md | 0 {specs => scratchpad}/styles-guide.md | 0 .../template-injection-prevention.md | 0 {specs => scratchpad}/testing.md | 0 .../token-budget-guidelines.md | 0 {specs => scratchpad}/ubuntulatest.md | 0 .../validation-architecture.md | 0 .../validation-refactoring.md | 4 +- .../visual-regression-testing.md | 0 .../workflow-refactoring-patterns.md | 0 {specs => scratchpad}/yaml-version-gotchas.md | 0 scripts/check-file-sizes.sh | 4 +- skills/developer/SKILL.md | 8 +- skills/messages/SKILL.md | 6 +- 118 files changed, 315 insertions(+), 315 deletions(-) rename {specs => scratchpad}/README.md (100%) rename {specs => scratchpad}/actions.md (100%) rename {specs => scratchpad}/agent-container-testing.md (100%) rename {specs => scratchpad}/agent-sessions.md (95%) rename {specs => scratchpad}/agents/hierarchical-agents-quickstart.md (100%) rename {specs => scratchpad}/agents/hierarchical-agents.md (100%) rename {specs => scratchpad}/artifact-naming-compatibility.md (100%) rename {specs => scratchpad}/artifacts.md (100%) rename {specs => scratchpad}/breaking-cli-rules.md (99%) rename {specs => scratchpad}/campaigns-files.md (100%) rename {specs => scratchpad}/capitalization.md (100%) rename {specs => scratchpad}/changesets.md (100%) rename {specs => scratchpad}/cli-command-patterns.md (99%) rename {specs => scratchpad}/code-organization.md (100%) rename {specs => scratchpad}/debugging-action-pinning.md (100%) rename {specs => scratchpad}/end-to-end-feature-testing.md (100%) rename {specs => scratchpad}/error-recovery-patterns.md (99%) rename {specs => scratchpad}/errors.md (100%) rename {specs => scratchpad}/file-inlining.md (100%) rename {specs => scratchpad}/firewall-log-parsing.md (100%) rename {specs => scratchpad}/gastown.md (100%) rename {specs => scratchpad}/github-actions-security-best-practices.md (100%) rename {specs => scratchpad}/github-mcp-access-control-specification.md (99%) rename {specs => scratchpad}/go-type-patterns.md (100%) rename {specs => scratchpad}/gosec.md (100%) rename {specs => scratchpad}/labels.md (100%) rename {specs => scratchpad}/layout.md (99%) rename {specs => scratchpad}/mcp_logs_guardrails.md (100%) rename {specs => scratchpad}/mdflow-comparison.md (100%) rename {specs => scratchpad}/mdflow.md (99%) rename {specs => scratchpad}/metrics-glossary.md (100%) rename {specs => scratchpad}/mods/README.md (100%) rename {specs => scratchpad}/mods/jsonschema-go.md (100%) rename {specs => scratchpad}/oh-my-code.md (99%) rename {specs => scratchpad}/repo-memory.md (100%) rename {specs => scratchpad}/safe-output-environment-variables.md (100%) rename {specs => scratchpad}/safe-output-handlers-refactoring.md (100%) rename {specs => scratchpad}/safe-output-messages.md (100%) rename {specs => scratchpad}/safe-outputs-specification.md (99%) rename {specs => scratchpad}/schema-validation.md (100%) rename {specs => scratchpad}/security_review.md (100%) rename {specs => scratchpad}/string-sanitization-normalization.md (100%) rename {specs => scratchpad}/styles-guide.md (100%) rename {specs => scratchpad}/template-injection-prevention.md (100%) rename {specs => scratchpad}/testing.md (100%) rename {specs => scratchpad}/token-budget-guidelines.md (100%) rename {specs => scratchpad}/ubuntulatest.md (100%) rename {specs => scratchpad}/validation-architecture.md (100%) rename {specs => scratchpad}/validation-refactoring.md (98%) rename {specs => scratchpad}/visual-regression-testing.md (100%) rename {specs => scratchpad}/workflow-refactoring-patterns.md (100%) rename {specs => scratchpad}/yaml-version-gotchas.md (100%) diff --git a/.github/agents/agentic-campaign-designer.agent.md b/.github/agents/agentic-campaign-designer.agent.md index 529c1713a0a..ddcd9215b69 100644 --- a/.github/agents/agentic-campaign-designer.agent.md +++ b/.github/agents/agentic-campaign-designer.agent.md @@ -262,7 +262,7 @@ gh aw campaign validate Point users to these resources: - **Getting started**: https://githubnext.github.io/gh-aw/guides/campaigns/getting-started/ - **Campaign flow**: https://githubnext.github.io/gh-aw/guides/campaigns/flow/ -- **Spec format**: https://githubnext.github.io/gh-aw/guides/campaigns/specs/ +- **Spec format**: https://githubnext.github.io/gh-aw/guides/campaigns/scratchpad/ - **Workflow catalog**: https://github.com/githubnext/agentics ## Success Criteria diff --git a/.github/agents/developer.instructions.md b/.github/agents/developer.instructions.md index 06c5a24c6ea..4e31aae9734 100644 --- a/.github/agents/developer.instructions.md +++ b/.github/agents/developer.instructions.md @@ -105,7 +105,7 @@ graph TD - **Large (500-1000 lines)**: Complex features, comprehensive implementations - **Very Large (1000+ lines)**: Consider splitting if not cohesive -**Implementation**: See specs/code-organization.md for complete guidelines +**Implementation**: See scratchpad/code-organization.md for complete guidelines --- @@ -183,7 +183,7 @@ graph TD F -->|Other| I[Create New Domain File] ``` -**Implementation**: See specs/validation-architecture.md for complete architecture +**Implementation**: See scratchpad/validation-architecture.md for complete architecture --- @@ -208,7 +208,7 @@ graph TD - **File Names**: Use lowercase with hyphens (e.g., `code-organization.md`) - **Code Elements**: Follow language conventions (e.g., `camelCase` in JavaScript, `snake_case` in Python) -**Implementation**: See specs/capitalization.md and `cmd/gh-aw/capitalization_test.go` +**Implementation**: See scratchpad/capitalization.md and `cmd/gh-aw/capitalization_test.go` ### Breaking Change Rules @@ -235,7 +235,7 @@ graph TD - Internal refactoring with same external behavior - Adding new features that don't affect existing functionality -**Implementation**: See specs/breaking-cli-rules.md for complete rules +**Implementation**: See scratchpad/breaking-cli-rules.md for complete rules --- @@ -271,7 +271,7 @@ graph TD - `normalizeLineEndings()` - Converts CRLF to LF - `normalizeMarkdown()` - Standardizes markdown formatting -**Implementation**: See specs/string-sanitization-normalization.md and `pkg/workflow/strings.go` +**Implementation**: See scratchpad/string-sanitization-normalization.md and `pkg/workflow/strings.go` --- @@ -301,7 +301,7 @@ err := yaml.Unmarshal(data, &workflow) - Boolean values: `yes`, `no`, `true`, `false`, `on`, `off` - Null values: `null`, `~` -**Implementation**: See specs/yaml-version-gotchas.md and `pkg/workflow/compiler.go` +**Implementation**: See scratchpad/yaml-version-gotchas.md and `pkg/workflow/compiler.go` --- @@ -337,7 +337,7 @@ safe_outputs: > AI generated by [WorkflowName](run_url) ``` -**Implementation**: See specs/safe-output-messages.md and `pkg/workflow/safe_outputs.go` +**Implementation**: See scratchpad/safe-output-messages.md and `pkg/workflow/safe_outputs.go` --- @@ -373,7 +373,7 @@ actions/ └── sh/ ``` -**Implementation**: See specs/actions.md and `pkg/cli/actions_build_command.go` +**Implementation**: See scratchpad/actions.md and `pkg/cli/actions_build_command.go` --- @@ -417,7 +417,7 @@ steps: - uses: actions/checkout@a1b2c3d4... # Pinned SHA ``` -**Implementation**: See specs/github-actions-security-best-practices.md and specs/template-injection-prevention.md +**Implementation**: See scratchpad/github-actions-security-best-practices.md and scratchpad/template-injection-prevention.md --- @@ -485,7 +485,7 @@ make update-golden - ❌ Tests fail unexpectedly during development - ❌ Making unrelated code changes -**Implementation**: See specs/visual-regression-testing.md and `pkg/console/golden_test.go` +**Implementation**: See scratchpad/visual-regression-testing.md and `pkg/console/golden_test.go` --- @@ -543,7 +543,7 @@ repo-memory: - Allowed/blocked file patterns - Size and count tracking in commit messages -**Implementation**: See specs/repo-memory.md and `pkg/workflow/repo_memory.go` +**Implementation**: See scratchpad/repo-memory.md and `pkg/workflow/repo_memory.go` --- @@ -587,7 +587,7 @@ graph TD - Proactive maintenance - Quality assessment -**Implementation**: See specs/agents/hierarchical-agents.md and `.github/workflows/` meta-orchestrator files +**Implementation**: See scratchpad/agents/hierarchical-agents.md and `.github/workflows/` meta-orchestrator files --- @@ -629,7 +629,7 @@ For manual feature testing in pull requests: 3. Dev Hawk will analyze and verify behavior 4. Do not merge dev.md changes - it remains a reusable test harness -**Implementation**: See specs/changesets.md and specs/end-to-end-feature-testing.md +**Implementation**: See scratchpad/changesets.md and scratchpad/end-to-end-feature-testing.md --- @@ -672,56 +672,56 @@ For manual feature testing in pull requests: ## Additional Documentation -For detailed specifications, see individual files in `specs/`: +For detailed specifications, see individual files in `scratchpad/`: ### Architecture & Organization -- [Code Organization Patterns](../../specs/code-organization.md) -- [Validation Architecture](../../specs/validation-architecture.md) -- [Layout System](../../specs/layout.md) -- [Go Type Patterns](../../specs/go-type-patterns.md) +- [Code Organization Patterns](../../scratchpad/code-organization.md) +- [Validation Architecture](../../scratchpad/validation-architecture.md) +- [Layout System](../../scratchpad/layout.md) +- [Go Type Patterns](../../scratchpad/go-type-patterns.md) ### Core Features -- [Safe Output Messages Design](../../specs/safe-output-messages.md) -- [Repo-Memory System](../../specs/repo-memory.md) -- [MCP Gateway](../../specs/mcp-gateway.md) -- [MCP Logs Guardrails](../../specs/mcp_logs_guardrails.md) -- [Custom Actions Build](../../specs/actions.md) +- [Safe Output Messages Design](../../scratchpad/safe-output-messages.md) +- [Repo-Memory System](../../scratchpad/repo-memory.md) +- [MCP Gateway](../../scratchpad/mcp-gateway.md) +- [MCP Logs Guardrails](../../scratchpad/mcp_logs_guardrails.md) +- [Custom Actions Build](../../scratchpad/actions.md) ### Testing & Quality -- [Testing Framework](../../specs/testing.md) -- [Visual Regression Testing](../../specs/visual-regression-testing.md) -- [End-to-End Feature Testing](../../specs/end-to-end-feature-testing.md) -- [Security Review](../../specs/security_review.md) -- [GoSec Integration](../../specs/gosec.md) +- [Testing Framework](../../scratchpad/testing.md) +- [Visual Regression Testing](../../scratchpad/visual-regression-testing.md) +- [End-to-End Feature Testing](../../scratchpad/end-to-end-feature-testing.md) +- [Security Review](../../scratchpad/security_review.md) +- [GoSec Integration](../../scratchpad/gosec.md) ### Security & Standards -- [GitHub Actions Security](../../specs/github-actions-security-best-practices.md) -- [Template Injection Prevention](../../specs/template-injection-prevention.md) -- [String Sanitization](../../specs/string-sanitization-normalization.md) -- [Schema Validation](../../specs/schema-validation.md) +- [GitHub Actions Security](../../scratchpad/github-actions-security-best-practices.md) +- [Template Injection Prevention](../../scratchpad/template-injection-prevention.md) +- [String Sanitization](../../scratchpad/string-sanitization-normalization.md) +- [Schema Validation](../../scratchpad/schema-validation.md) ### Development Guidelines -- [Capitalization Guidelines](../../specs/capitalization.md) -- [Breaking Change Rules](../../specs/breaking-cli-rules.md) -- [CLI Command Patterns](../../specs/cli-command-patterns.md) -- [Styles Guide](../../specs/styles-guide.md) -- [Changesets](../../specs/changesets.md) -- [Labels](../../specs/labels.md) +- [Capitalization Guidelines](../../scratchpad/capitalization.md) +- [Breaking Change Rules](../../scratchpad/breaking-cli-rules.md) +- [CLI Command Patterns](../../scratchpad/cli-command-patterns.md) +- [Styles Guide](../../scratchpad/styles-guide.md) +- [Changesets](../../scratchpad/changesets.md) +- [Labels](../../scratchpad/labels.md) ### Advanced Topics -- [Hierarchical Agents](../../specs/agents/hierarchical-agents.md) -- [Hierarchical Agents Quickstart](../../specs/agents/hierarchical-agents-quickstart.md) -- [Gastown Multi-Agent Orchestration](../../specs/gastown.md) -- [mdflow Comparison](../../specs/mdflow-comparison.md) -- [mdflow Deep Research](../../specs/mdflow.md) +- [Hierarchical Agents](../../scratchpad/agents/hierarchical-agents.md) +- [Hierarchical Agents Quickstart](../../scratchpad/agents/hierarchical-agents-quickstart.md) +- [Gastown Multi-Agent Orchestration](../../scratchpad/gastown.md) +- [mdflow Comparison](../../scratchpad/mdflow-comparison.md) +- [mdflow Deep Research](../../scratchpad/mdflow.md) ### Technical Details -- [YAML Version Gotchas](../../specs/yaml-version-gotchas.md) -- [Validation Refactoring](../../specs/validation-refactoring.md) -- [Workflow Refactoring Patterns](../../specs/workflow-refactoring-patterns.md) -- [Safe Output Handlers Refactoring](../../specs/safe-output-handlers-refactoring.md) -- [Artifact Naming Compatibility](../../specs/artifact-naming-compatibility.md) -- [Safe Output Environment Variables](../../specs/safe-output-environment-variables.md) +- [YAML Version Gotchas](../../scratchpad/yaml-version-gotchas.md) +- [Validation Refactoring](../../scratchpad/validation-refactoring.md) +- [Workflow Refactoring Patterns](../../scratchpad/workflow-refactoring-patterns.md) +- [Safe Output Handlers Refactoring](../../scratchpad/safe-output-handlers-refactoring.md) +- [Artifact Naming Compatibility](../../scratchpad/artifact-naming-compatibility.md) +- [Safe Output Environment Variables](../../scratchpad/safe-output-environment-variables.md) --- diff --git a/.github/aw/generate-agentic-campaign.md b/.github/aw/generate-agentic-campaign.md index 5677799ee29..56b7cd9e2e8 100644 --- a/.github/aw/generate-agentic-campaign.md +++ b/.github/aw/generate-agentic-campaign.md @@ -94,7 +94,7 @@ Use `update_issue` with `operation: "append"` so you **do not overwrite** the or Docs to link: - Getting started: https://githubnext.github.io/gh-aw/guides/campaigns/getting-started/ - Flow & lifecycle: https://githubnext.github.io/gh-aw/guides/campaigns/flow/ -- Campaign specs: https://githubnext.github.io/gh-aw/guides/campaigns/specs/ +- Campaign specs: https://githubnext.github.io/gh-aw/guides/campaigns/scratchpad/ ### Required structure for the issue update diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index a831d7a2c1a..ae5fb9a9be0 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -563,7 +563,7 @@ jobs: First, read and understand the breaking change rules defined in the spec: ```bash - cat __GH_AW_GITHUB_WORKSPACE__/specs/breaking-cli-rules.md + cat __GH_AW_GITHUB_WORKSPACE__/scratchpad/breaking-cli-rules.md ``` Key breaking change categories: @@ -685,14 +685,14 @@ jobs: Complete the following items to address these breaking changes: - [ ] **Review all breaking changes detected** - Verify each change is correctly categorized - - [ ] **Create a changeset file in `.changeset/` directory** - Create a file like `major-breaking-change-description.md` with the change details. Specify the semver bump type (`major`, `minor`, or `patch`) in the YAML frontmatter of the changeset file. The release script determines the overall version bump by selecting the highest-priority bump type across all changesets. See [specs/changesets.md](specs/changesets.md) for format details. + - [ ] **Create a changeset file in `.changeset/` directory** - Create a file like `major-breaking-change-description.md` with the change details. Specify the semver bump type (`major`, `minor`, or `patch`) in the YAML frontmatter of the changeset file. The release script determines the overall version bump by selecting the highest-priority bump type across all changesets. See [scratchpad/changesets.md](scratchpad/changesets.md) for format details. - [ ] **Add migration guidance to changeset** - Include clear migration instructions in the changeset file showing users how to update their workflows - [ ] **Document breaking changes in CHANGELOG.md** - Add entries under "Breaking Changes" section with user-facing descriptions - [ ] **Verify backward compatibility was considered** - Confirm that alternatives to breaking were evaluated ### Reference - See [specs/breaking-cli-rules.md](specs/breaking-cli-rules.md) for the complete breaking change policy. + See [scratchpad/breaking-cli-rules.md](scratchpad/breaking-cli-rules.md) for the complete breaking change policy. --- diff --git a/.github/workflows/breaking-change-checker.md b/.github/workflows/breaking-change-checker.md index dfd52fae28d..02e328381f3 100644 --- a/.github/workflows/breaking-change-checker.md +++ b/.github/workflows/breaking-change-checker.md @@ -49,7 +49,7 @@ You are a code reviewer specialized in identifying breaking CLI changes. Analyze First, read and understand the breaking change rules defined in the spec: ```bash -cat ${{ github.workspace }}/specs/breaking-cli-rules.md +cat ${{ github.workspace }}/scratchpad/breaking-cli-rules.md ``` Key breaking change categories: @@ -171,14 +171,14 @@ List the commits that were analyzed with their details. Complete the following items to address these breaking changes: - [ ] **Review all breaking changes detected** - Verify each change is correctly categorized -- [ ] **Create a changeset file in `.changeset/` directory** - Create a file like `major-breaking-change-description.md` with the change details. Specify the semver bump type (`major`, `minor`, or `patch`) in the YAML frontmatter of the changeset file. The release script determines the overall version bump by selecting the highest-priority bump type across all changesets. See [specs/changesets.md](specs/changesets.md) for format details. +- [ ] **Create a changeset file in `.changeset/` directory** - Create a file like `major-breaking-change-description.md` with the change details. Specify the semver bump type (`major`, `minor`, or `patch`) in the YAML frontmatter of the changeset file. The release script determines the overall version bump by selecting the highest-priority bump type across all changesets. See [scratchpad/changesets.md](scratchpad/changesets.md) for format details. - [ ] **Add migration guidance to changeset** - Include clear migration instructions in the changeset file showing users how to update their workflows - [ ] **Document breaking changes in CHANGELOG.md** - Add entries under "Breaking Changes" section with user-facing descriptions - [ ] **Verify backward compatibility was considered** - Confirm that alternatives to breaking were evaluated ### Reference -See [specs/breaking-cli-rules.md](specs/breaking-cli-rules.md) for the complete breaking change policy. +See [scratchpad/breaking-cli-rules.md](scratchpad/breaking-cli-rules.md) for the complete breaking change policy. --- diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 5e526213b5f..7bf7cf60e6e 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -955,7 +955,7 @@ jobs: #### 4.2 Store Today's Metrics - Store today's metrics (see standardized metric names in specs/metrics-glossary.md): + Store today's metrics (see standardized metric names in scratchpad/metrics-glossary.md): - Total PRs created today (`agent_prs_total`) - Number merged/closed/open (`agent_prs_merged`) - Average comments per PR @@ -989,7 +989,7 @@ jobs: repo:__GH_AW_GITHUB_REPOSITORY__ is:pr "START COPILOT CODING AGENT" created:YYYY-MM-DD..YYYY-MM-DD ``` - Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in specs/metrics-glossary.md for scope). + Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in scratchpad/metrics-glossary.md for scope). **Process:** - Start with the oldest missing date in your target range (maximum 3 days ago) @@ -1009,7 +1009,7 @@ jobs: #### 4.3 Store Today's Metrics - After ensuring historical data is available (either from existing repo memory or rebuilt), add today's metrics (see specs/metrics-glossary.md): + After ensuring historical data is available (either from existing repo memory or rebuilt), add today's metrics (see scratchpad/metrics-glossary.md): - Total PRs created today (`agent_prs_total`) - Number merged/closed/open (`agent_prs_merged`, `closed_prs`, `open_prs`) - Average comments per PR diff --git a/.github/workflows/copilot-agent-analysis.md b/.github/workflows/copilot-agent-analysis.md index 003818bac09..f698b73a0d9 100644 --- a/.github/workflows/copilot-agent-analysis.md +++ b/.github/workflows/copilot-agent-analysis.md @@ -261,7 +261,7 @@ If the history file doesn't exist or has gaps in the data, rebuild it by queryin #### 4.2 Store Today's Metrics -Store today's metrics (see standardized metric names in specs/metrics-glossary.md): +Store today's metrics (see standardized metric names in scratchpad/metrics-glossary.md): - Total PRs created today (`agent_prs_total`) - Number merged/closed/open (`agent_prs_merged`) - Average comments per PR @@ -295,7 +295,7 @@ Store the data in JSON format with proper structure. repo:${{ github.repository }} is:pr "START COPILOT CODING AGENT" created:YYYY-MM-DD..YYYY-MM-DD ``` -Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in specs/metrics-glossary.md for scope). +Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in scratchpad/metrics-glossary.md for scope). **Process:** - Start with the oldest missing date in your target range (maximum 3 days ago) @@ -315,7 +315,7 @@ Or use `list_pull_requests` with date filtering and filter results by agent crit #### 4.3 Store Today's Metrics -After ensuring historical data is available (either from existing repo memory or rebuilt), add today's metrics (see specs/metrics-glossary.md): +After ensuring historical data is available (either from existing repo memory or rebuilt), add today's metrics (see scratchpad/metrics-glossary.md): - Total PRs created today (`agent_prs_total`) - Number merged/closed/open (`agent_prs_merged`, `closed_prs`, `open_prs`) - Average comments per PR diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 8062984a035..5ffc3a47c4c 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1138,7 +1138,7 @@ jobs: ## Metrics to Collect - All metrics use standardized names from specs/metrics-glossary.md: + All metrics use standardized names from scratchpad/metrics-glossary.md: **Size**: LOC by language (`lines_of_code_total`), by directory (cmd, pkg, docs, workflows), file counts/distribution diff --git a/.github/workflows/daily-code-metrics.md b/.github/workflows/daily-code-metrics.md index fef9379a438..647f25d1dd6 100644 --- a/.github/workflows/daily-code-metrics.md +++ b/.github/workflows/daily-code-metrics.md @@ -45,7 +45,7 @@ Analyze codebase daily: compute size, quality, health metrics. Track 7/30-day tr ## Metrics to Collect -All metrics use standardized names from specs/metrics-glossary.md: +All metrics use standardized names from scratchpad/metrics-glossary.md: **Size**: LOC by language (`lines_of_code_total`), by directory (cmd, pkg, docs, workflows), file counts/distribution diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index ecc8b3e08b7..aea58cfaab2 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -941,7 +941,7 @@ jobs: ### Step 1: Collect Recent Firewall-Enabled Workflow Runs - Use the `logs` tool from the agentic-workflows MCP server to efficiently collect workflow runs that have firewall enabled (see `workflow_runs_analyzed` in specs/metrics-glossary.md - Scope: Last 7 days): + Use the `logs` tool from the agentic-workflows MCP server to efficiently collect workflow runs that have firewall enabled (see `workflow_runs_analyzed` in scratchpad/metrics-glossary.md - Scope: Last 7 days): **Using the logs tool:** Call the `logs` tool with the following parameters: @@ -1030,7 +1030,7 @@ jobs: ' ``` - For each workflow run with firewall data (see standardized metric names in specs/metrics-glossary.md): + For each workflow run with firewall data (see standardized metric names in scratchpad/metrics-glossary.md): 1. Extract the firewall analysis from the audit JSON output 2. Track the following metrics per workflow: - Total requests (`firewall_requests_total`) diff --git a/.github/workflows/daily-firewall-report.md b/.github/workflows/daily-firewall-report.md index 7c99ffd9bfb..10838f2a17a 100644 --- a/.github/workflows/daily-firewall-report.md +++ b/.github/workflows/daily-firewall-report.md @@ -233,7 +233,7 @@ This ensures accurate, up-to-date reporting for every run of this workflow. ### Step 1: Collect Recent Firewall-Enabled Workflow Runs -Use the `logs` tool from the agentic-workflows MCP server to efficiently collect workflow runs that have firewall enabled (see `workflow_runs_analyzed` in specs/metrics-glossary.md - Scope: Last 7 days): +Use the `logs` tool from the agentic-workflows MCP server to efficiently collect workflow runs that have firewall enabled (see `workflow_runs_analyzed` in scratchpad/metrics-glossary.md - Scope: Last 7 days): **Using the logs tool:** Call the `logs` tool with the following parameters: @@ -322,7 +322,7 @@ gh aw audit --json | jq -r ' ' ``` -For each workflow run with firewall data (see standardized metric names in specs/metrics-glossary.md): +For each workflow run with firewall data (see standardized metric names in scratchpad/metrics-glossary.md): 1. Extract the firewall analysis from the audit JSON output 2. Track the following metrics per workflow: - Total requests (`firewall_requests_total`) diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 431b61691b9..2499061f8c4 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1366,7 +1366,7 @@ jobs: ## Mission - Generate a daily report analyzing up to 1000 issues from the repository (see `issues_analyzed` in specs/metrics-glossary.md): + Generate a daily report analyzing up to 1000 issues from the repository (see `issues_analyzed` in scratchpad/metrics-glossary.md): 1. Cluster issues by topic/theme using natural language analysis 2. Calculate various metrics (open/closed rates, response times, label distribution) 3. Generate trend charts showing issue activity over time @@ -1404,7 +1404,7 @@ jobs: - Identify 5-10 major issue clusters/themes - Label each cluster based on common keywords - **Metrics to Calculate** (see specs/metrics-glossary.md for definitions): + **Metrics to Calculate** (see scratchpad/metrics-glossary.md for definitions): - Total issues (open vs closed) - `total_issues`, `open_issues`, `closed_issues` - Issues opened in last 7, 30 days - `issues_opened_7d`, `issues_opened_30d` - Average time to close (for closed issues) @@ -1442,7 +1442,7 @@ jobs: df['updatedAt'] = pd.to_datetime(df['updatedAt']) df['closedAt'] = pd.to_datetime(df['closedAt']) - # Calculate basic metrics (see specs/metrics-glossary.md for definitions) + # Calculate basic metrics (see scratchpad/metrics-glossary.md for definitions) # Scope: All issues in repository, no filters total_issues = len(df) @@ -1500,7 +1500,7 @@ jobs: df['cluster'] = df['title'].apply(cluster_by_keywords) # Save metrics to JSON for report - # Note: Using standardized metric names from specs/metrics-glossary.md + # Note: Using standardized metric names from scratchpad/metrics-glossary.md metrics = { 'total_issues': total_issues, 'open_issues': open_issues, diff --git a/.github/workflows/daily-issues-report.md b/.github/workflows/daily-issues-report.md index db4f6393f87..681303ca98b 100644 --- a/.github/workflows/daily-issues-report.md +++ b/.github/workflows/daily-issues-report.md @@ -42,7 +42,7 @@ You are an expert analyst that generates comprehensive daily reports about repos ## Mission -Generate a daily report analyzing up to 1000 issues from the repository (see `issues_analyzed` in specs/metrics-glossary.md): +Generate a daily report analyzing up to 1000 issues from the repository (see `issues_analyzed` in scratchpad/metrics-glossary.md): 1. Cluster issues by topic/theme using natural language analysis 2. Calculate various metrics (open/closed rates, response times, label distribution) 3. Generate trend charts showing issue activity over time @@ -80,7 +80,7 @@ Create a Python script to analyze and cluster the issues. Use scikit-learn for c - Identify 5-10 major issue clusters/themes - Label each cluster based on common keywords -**Metrics to Calculate** (see specs/metrics-glossary.md for definitions): +**Metrics to Calculate** (see scratchpad/metrics-glossary.md for definitions): - Total issues (open vs closed) - `total_issues`, `open_issues`, `closed_issues` - Issues opened in last 7, 30 days - `issues_opened_7d`, `issues_opened_30d` - Average time to close (for closed issues) @@ -118,7 +118,7 @@ df['createdAt'] = pd.to_datetime(df['createdAt']) df['updatedAt'] = pd.to_datetime(df['updatedAt']) df['closedAt'] = pd.to_datetime(df['closedAt']) -# Calculate basic metrics (see specs/metrics-glossary.md for definitions) +# Calculate basic metrics (see scratchpad/metrics-glossary.md for definitions) # Scope: All issues in repository, no filters total_issues = len(df) @@ -176,7 +176,7 @@ def cluster_by_keywords(title): df['cluster'] = df['title'].apply(cluster_by_keywords) # Save metrics to JSON for report -# Note: Using standardized metric names from specs/metrics-glossary.md +# Note: Using standardized metric names from scratchpad/metrics-glossary.md metrics = { 'total_issues': total_issues, 'open_issues': open_issues, diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 2e006f365b5..ceea1933eca 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -799,7 +799,7 @@ jobs: - **Repository**: __GH_AW_GITHUB_REPOSITORY__ - **Run ID**: __GH_AW_GITHUB_RUN_ID__ - **Date**: Generated daily - - **Analysis Window**: Last 7 days of workflow runs (see `workflow_runs_analyzed` in specs/metrics-glossary.md) + - **Analysis Window**: Last 7 days of workflow runs (see `workflow_runs_analyzed` in scratchpad/metrics-glossary.md) ## Phase 1: Fetch Workflow Runs @@ -851,7 +851,7 @@ jobs: ### Step 1.3: Collect Run Information - The `logs` MCP tool saves all downloaded run logs to `/tmp/gh-aw/aw-mcp/logs/`. For each downloaded run, note (see standardized metric names in specs/metrics-glossary.md): + The `logs` MCP tool saves all downloaded run logs to `/tmp/gh-aw/aw-mcp/logs/`. For each downloaded run, note (see standardized metric names in scratchpad/metrics-glossary.md): - Workflow name - Run ID - Conclusion (success, failure, cancelled) @@ -956,7 +956,7 @@ jobs: ### Coverage Metrics ```python - # Calculate coverage percentages (see specs/metrics-glossary.md for definitions) + # Calculate coverage percentages (see scratchpad/metrics-glossary.md for definitions) firewall_enabled_workflows = count_runs_with_firewall() firewall_logs_present = count_runs_with_access_log() firewall_coverage = (firewall_logs_present / firewall_enabled_workflows) * 100 if firewall_enabled_workflows > 0 else "N/A" diff --git a/.github/workflows/daily-observability-report.md b/.github/workflows/daily-observability-report.md index 34ca3faa951..d6e57d3f182 100644 --- a/.github/workflows/daily-observability-report.md +++ b/.github/workflows/daily-observability-report.md @@ -98,7 +98,7 @@ The goal is to ensure all workflow runs have the necessary logs and telemetry to - **Repository**: ${{ github.repository }} - **Run ID**: ${{ github.run_id }} - **Date**: Generated daily -- **Analysis Window**: Last 7 days of workflow runs (see `workflow_runs_analyzed` in specs/metrics-glossary.md) +- **Analysis Window**: Last 7 days of workflow runs (see `workflow_runs_analyzed` in scratchpad/metrics-glossary.md) ## Phase 1: Fetch Workflow Runs @@ -150,7 +150,7 @@ If there are many workflows, you can also target specific workflows: ### Step 1.3: Collect Run Information -The `logs` MCP tool saves all downloaded run logs to `/tmp/gh-aw/aw-mcp/logs/`. For each downloaded run, note (see standardized metric names in specs/metrics-glossary.md): +The `logs` MCP tool saves all downloaded run logs to `/tmp/gh-aw/aw-mcp/logs/`. For each downloaded run, note (see standardized metric names in scratchpad/metrics-glossary.md): - Workflow name - Run ID - Conclusion (success, failure, cancelled) @@ -255,7 +255,7 @@ Calculate aggregated metrics across all analyzed runs: ### Coverage Metrics ```python -# Calculate coverage percentages (see specs/metrics-glossary.md for definitions) +# Calculate coverage percentages (see scratchpad/metrics-glossary.md for definitions) firewall_enabled_workflows = count_runs_with_firewall() firewall_logs_present = count_runs_with_access_log() firewall_coverage = (firewall_logs_present / firewall_enabled_workflows) * 100 if firewall_enabled_workflows > 0 else "N/A" diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 8590009342d..0c8d183825f 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -1137,11 +1137,11 @@ jobs: Review all daily report discussions from the last 24 hours and: 1. Extract key metrics and statistics from each daily report - 2. Cross-check numbers across different reports for consistency (using specs/metrics-glossary.md for definitions) + 2. Cross-check numbers across different reports for consistency (using scratchpad/metrics-glossary.md for definitions) 3. Identify potential issues, anomalies, or concerning trends 4. Generate a regulatory report summarizing findings and flagging issues - **Important**: Use the metrics glossary at specs/metrics-glossary.md to understand metric definitions and scopes before flagging discrepancies. + **Important**: Use the metrics glossary at scratchpad/metrics-glossary.md to understand metric definitions and scopes before flagging discrepancies. ## Report Formatting Guidelines @@ -1285,7 +1285,7 @@ jobs: ### 2.1 Common Metrics to Extract - See specs/metrics-glossary.md for standardized metric definitions and scopes. + See scratchpad/metrics-glossary.md for standardized metric definitions and scopes. **Issues-related metrics:** - Total issues analyzed (`total_issues` - may differ by report scope) @@ -1349,7 +1349,7 @@ jobs: ### 3.2 Cross-Report Consistency Checks - Compare metrics across different reports using standardized names from specs/metrics-glossary.md: + Compare metrics across different reports using standardized names from scratchpad/metrics-glossary.md: **Before flagging discrepancies:** 1. **Check metric scopes** - Review the glossary to understand if metrics have different scopes @@ -1368,7 +1368,7 @@ jobs: ### 3.3 Anomaly Detection - Flag potential issues (referencing specs/metrics-glossary.md for expected scopes): + Flag potential issues (referencing scratchpad/metrics-glossary.md for expected scopes): - **Large discrepancies**: Numbers differ by more than 10% across reports **for metrics with identical scopes** - **Scope mismatches**: Document when metrics have intentionally different scopes (e.g., `issues_analyzed`) - **Unexpected zeros**: Zero counts where there should be activity @@ -1379,7 +1379,7 @@ jobs: **Example validation logic:** ```bash # When comparing open_issues across reports, check if they're within tolerance - # This metric has the same scope across all reports (see specs/metrics-glossary.md) + # This metric has the same scope across all reports (see scratchpad/metrics-glossary.md) issues_report_open=150 arborist_report_open=148 tolerance=10 # 10% tolerance @@ -1391,8 +1391,8 @@ jobs: fi # However, issues_analyzed should NOT be compared as they have different scopes: - # - Daily Issues Report: 1000 issues (see specs/metrics-glossary.md) - # - Issue Arborist: 100 open issues without parent (see specs/metrics-glossary.md) + # - Daily Issues Report: 1000 issues (see scratchpad/metrics-glossary.md) + # - Issue Arborist: 100 open issues without parent (see scratchpad/metrics-glossary.md) # These are intentionally different and should be documented, not flagged as errors ``` @@ -1427,7 +1427,7 @@ jobs: ### Cross-Report Metrics Comparison - Reference specs/metrics-glossary.md for metric definitions and scopes. + Reference scratchpad/metrics-glossary.md for metric definitions and scopes. | Metric | Issues Report | Performance Report | Chronicle | Scope Match | Status | |--------|---------------|-------------------|-----------|-------------|--------| @@ -1453,7 +1453,7 @@ jobs: 1. **[Issue Title]** - **Affected Reports**: [List of reports] - - **Metric**: [Metric name from specs/metrics-glossary.md] + - **Metric**: [Metric name from scratchpad/metrics-glossary.md] - **Description**: [What was found] - **Expected**: [What was expected] - **Actual**: [What was found] @@ -1511,9 +1511,9 @@ jobs: ### Process Improvements - 1. **[Recommendation]**: [Description and rationale] PROMPT_EOF cat << 'PROMPT_EOF' >> "$GH_AW_PROMPT" + 1. **[Recommendation]**: [Description and rationale] 2. **[Recommendation]**: [Description and rationale] ### Data Quality Actions @@ -1540,7 +1540,7 @@ jobs: --- *Report generated automatically by the Daily Regulatory workflow* *Data sources: Daily report discussions from __GH_AW_GITHUB_REPOSITORY__* - *Metric definitions: specs/metrics-glossary.md* + *Metric definitions: scratchpad/metrics-glossary.md* ``` ## Phase 5: Close Previous Reports diff --git a/.github/workflows/daily-regulatory.md b/.github/workflows/daily-regulatory.md index 6251169b2d7..4473cbb74a2 100644 --- a/.github/workflows/daily-regulatory.md +++ b/.github/workflows/daily-regulatory.md @@ -42,11 +42,11 @@ You are a regulatory analyst that monitors and cross-checks the outputs of other Review all daily report discussions from the last 24 hours and: 1. Extract key metrics and statistics from each daily report -2. Cross-check numbers across different reports for consistency (using specs/metrics-glossary.md for definitions) +2. Cross-check numbers across different reports for consistency (using scratchpad/metrics-glossary.md for definitions) 3. Identify potential issues, anomalies, or concerning trends 4. Generate a regulatory report summarizing findings and flagging issues -**Important**: Use the metrics glossary at specs/metrics-glossary.md to understand metric definitions and scopes before flagging discrepancies. +**Important**: Use the metrics glossary at scratchpad/metrics-glossary.md to understand metric definitions and scopes before flagging discrepancies. ## Report Formatting Guidelines @@ -190,7 +190,7 @@ For each identified daily report, extract key metrics: ### 2.1 Common Metrics to Extract -See specs/metrics-glossary.md for standardized metric definitions and scopes. +See scratchpad/metrics-glossary.md for standardized metric definitions and scopes. **Issues-related metrics:** - Total issues analyzed (`total_issues` - may differ by report scope) @@ -254,7 +254,7 @@ For each report, verify: ### 3.2 Cross-Report Consistency Checks -Compare metrics across different reports using standardized names from specs/metrics-glossary.md: +Compare metrics across different reports using standardized names from scratchpad/metrics-glossary.md: **Before flagging discrepancies:** 1. **Check metric scopes** - Review the glossary to understand if metrics have different scopes @@ -273,7 +273,7 @@ Compare metrics across different reports using standardized names from specs/met ### 3.3 Anomaly Detection -Flag potential issues (referencing specs/metrics-glossary.md for expected scopes): +Flag potential issues (referencing scratchpad/metrics-glossary.md for expected scopes): - **Large discrepancies**: Numbers differ by more than 10% across reports **for metrics with identical scopes** - **Scope mismatches**: Document when metrics have intentionally different scopes (e.g., `issues_analyzed`) - **Unexpected zeros**: Zero counts where there should be activity @@ -284,7 +284,7 @@ Flag potential issues (referencing specs/metrics-glossary.md for expected scopes **Example validation logic:** ```bash # When comparing open_issues across reports, check if they're within tolerance -# This metric has the same scope across all reports (see specs/metrics-glossary.md) +# This metric has the same scope across all reports (see scratchpad/metrics-glossary.md) issues_report_open=150 arborist_report_open=148 tolerance=10 # 10% tolerance @@ -296,8 +296,8 @@ if [ $diff -gt $tolerance ]; then fi # However, issues_analyzed should NOT be compared as they have different scopes: -# - Daily Issues Report: 1000 issues (see specs/metrics-glossary.md) -# - Issue Arborist: 100 open issues without parent (see specs/metrics-glossary.md) +# - Daily Issues Report: 1000 issues (see scratchpad/metrics-glossary.md) +# - Issue Arborist: 100 open issues without parent (see scratchpad/metrics-glossary.md) # These are intentionally different and should be documented, not flagged as errors ``` @@ -332,7 +332,7 @@ Brief 2-3 paragraph executive summary highlighting: ### Cross-Report Metrics Comparison -Reference specs/metrics-glossary.md for metric definitions and scopes. +Reference scratchpad/metrics-glossary.md for metric definitions and scopes. | Metric | Issues Report | Performance Report | Chronicle | Scope Match | Status | |--------|---------------|-------------------|-----------|-------------|--------| @@ -358,7 +358,7 @@ Reference specs/metrics-glossary.md for metric definitions and scopes. 1. **[Issue Title]** - **Affected Reports**: [List of reports] - - **Metric**: [Metric name from specs/metrics-glossary.md] + - **Metric**: [Metric name from scratchpad/metrics-glossary.md] - **Description**: [What was found] - **Expected**: [What was expected] - **Actual**: [What was found] @@ -443,7 +443,7 @@ Reference specs/metrics-glossary.md for metric definitions and scopes. --- *Report generated automatically by the Daily Regulatory workflow* *Data sources: Daily report discussions from ${{ github.repository }}* -*Metric definitions: specs/metrics-glossary.md* +*Metric definitions: scratchpad/metrics-glossary.md* ``` ## Phase 5: Close Previous Reports diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index ccceb32fc0a..f02e1a84c7f 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -890,7 +890,7 @@ jobs: ## 📖 Reference Documentation For detailed information about secret usage patterns, see: - - Specification: [`specs/secrets-yml.md`](https://github.com/githubnext/gh-aw/blob/main/specs/secrets-yml.md) + - Specification: [`scratchpad/secrets-yml.md`](https://github.com/githubnext/gh-aw/blob/main/scratchpad/secrets-yml.md) - Redaction System: `actions/setup/js/redact_secrets.cjs` --- diff --git a/.github/workflows/daily-secrets-analysis.md b/.github/workflows/daily-secrets-analysis.md index b85d44398f4..12fa206d37e 100644 --- a/.github/workflows/daily-secrets-analysis.md +++ b/.github/workflows/daily-secrets-analysis.md @@ -261,7 +261,7 @@ Use the following template for the discussion post: ## 📖 Reference Documentation For detailed information about secret usage patterns, see: -- Specification: [`specs/secrets-yml.md`](https://github.com/githubnext/gh-aw/blob/main/specs/secrets-yml.md) +- Specification: [`scratchpad/secrets-yml.md`](https://github.com/githubnext/gh-aw/blob/main/scratchpad/secrets-yml.md) - Redaction System: `actions/setup/js/redact_secrets.cjs` --- diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 7bc8d5981e5..6f7dfd51bb5 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -847,7 +847,7 @@ jobs: assert.Equal(t, expected, result, "result should match expected value") ``` - **Why this matters**: Testify provides clearer error messages, better test output, and is the standard used throughout this codebase (see `specs/testing.md`). + **Why this matters**: Testify provides clearer error messages, better test output, and is the standard used throughout this codebase (see `scratchpad/testing.md`). #### 2. Table-Driven Tests @@ -895,7 +895,7 @@ jobs: } ``` - **Why this matters**: Table-driven tests are easier to extend, maintain, and understand. They follow the pattern used in `specs/testing.md`. + **Why this matters**: Table-driven tests are easier to extend, maintain, and understand. They follow the pattern used in `scratchpad/testing.md`. #### 3. Test Coverage Gaps @@ -964,7 +964,7 @@ jobs: 4. **Medium**: Improve test names and organization 5. **Low**: Add assertion messages - ### Best Practices from `specs/testing.md` + ### Best Practices from `scratchpad/testing.md` - ✅ Use `require.*` for critical setup (stops test on failure) - ✅ Use `assert.*` for test validations (continues checking) - ✅ Write table-driven tests with `t.Run()` and descriptive names @@ -991,11 +991,11 @@ jobs: - [ ] Test names are descriptive and follow conventions - [ ] All assertions include helpful messages - [ ] Tests pass: `make test-unit` - - [ ] Code follows patterns in `specs/testing.md` + - [ ] Code follows patterns in `scratchpad/testing.md` ## Additional Context - - **Repository Testing Guidelines**: See `specs/testing.md` for comprehensive testing patterns + - **Repository Testing Guidelines**: See `scratchpad/testing.md` for comprehensive testing patterns - **Example Tests**: Look at recent test files in `pkg/workflow/*_test.go` for examples - **Testify Documentation**: https://github.com/stretchr/testify @@ -1072,14 +1072,14 @@ jobs: - **One file per day**: Focus on providing high-quality, detailed analysis for a single file - **Use Serena extensively**: Leverage the language server for semantic understanding - **Be specific and actionable**: Provide code examples, not vague advice - - **Follow repository patterns**: Reference `specs/testing.md` and existing test patterns + - **Follow repository patterns**: Reference `scratchpad/testing.md` and existing test patterns - **Cache management**: Always update the cache after processing - **30-day cycle**: Files become eligible for re-analysis after 30 days - **Priority to uncovered code**: Prefer files with lower test coverage when selecting ## Testify Best Practices Reference - ### Common Patterns from `specs/testing.md` + ### Common Patterns from `scratchpad/testing.md` **Use `require.*` for setup:** ```go @@ -1104,11 +1104,11 @@ jobs: shouldErr bool }{ {"valid case", "input", "output", false}, + PROMPT_EOF + cat << 'PROMPT_EOF' >> "$GH_AW_PROMPT" {"error case", "", "", true}, } - PROMPT_EOF - cat << 'PROMPT_EOF' >> "$GH_AW_PROMPT" for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // test implementation diff --git a/.github/workflows/daily-testify-uber-super-expert.md b/.github/workflows/daily-testify-uber-super-expert.md index 9750dc2bc0f..95b7e6f7670 100644 --- a/.github/workflows/daily-testify-uber-super-expert.md +++ b/.github/workflows/daily-testify-uber-super-expert.md @@ -222,7 +222,7 @@ require.NoError(t, err, "operation should succeed") assert.Equal(t, expected, result, "result should match expected value") ``` -**Why this matters**: Testify provides clearer error messages, better test output, and is the standard used throughout this codebase (see `specs/testing.md`). +**Why this matters**: Testify provides clearer error messages, better test output, and is the standard used throughout this codebase (see `scratchpad/testing.md`). #### 2. Table-Driven Tests @@ -270,7 +270,7 @@ func TestFunctionName(t *testing.T) { } ``` -**Why this matters**: Table-driven tests are easier to extend, maintain, and understand. They follow the pattern used in `specs/testing.md`. +**Why this matters**: Table-driven tests are easier to extend, maintain, and understand. They follow the pattern used in `scratchpad/testing.md`. #### 3. Test Coverage Gaps @@ -339,7 +339,7 @@ require.NoError(t, err, "setup should succeed without errors") 4. **Medium**: Improve test names and organization 5. **Low**: Add assertion messages -### Best Practices from `specs/testing.md` +### Best Practices from `scratchpad/testing.md` - ✅ Use `require.*` for critical setup (stops test on failure) - ✅ Use `assert.*` for test validations (continues checking) - ✅ Write table-driven tests with `t.Run()` and descriptive names @@ -366,11 +366,11 @@ make test-unit - [ ] Test names are descriptive and follow conventions - [ ] All assertions include helpful messages - [ ] Tests pass: `make test-unit` -- [ ] Code follows patterns in `specs/testing.md` +- [ ] Code follows patterns in `scratchpad/testing.md` ## Additional Context -- **Repository Testing Guidelines**: See `specs/testing.md` for comprehensive testing patterns +- **Repository Testing Guidelines**: See `scratchpad/testing.md` for comprehensive testing patterns - **Example Tests**: Look at recent test files in `pkg/workflow/*_test.go` for examples - **Testify Documentation**: https://github.com/stretchr/testify @@ -447,14 +447,14 @@ Total Processed Files: [COUNT] - **One file per day**: Focus on providing high-quality, detailed analysis for a single file - **Use Serena extensively**: Leverage the language server for semantic understanding - **Be specific and actionable**: Provide code examples, not vague advice -- **Follow repository patterns**: Reference `specs/testing.md` and existing test patterns +- **Follow repository patterns**: Reference `scratchpad/testing.md` and existing test patterns - **Cache management**: Always update the cache after processing - **30-day cycle**: Files become eligible for re-analysis after 30 days - **Priority to uncovered code**: Prefer files with lower test coverage when selecting ## Testify Best Practices Reference -### Common Patterns from `specs/testing.md` +### Common Patterns from `scratchpad/testing.md` **Use `require.*` for setup:** ```go diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 9f57ee3ac74..1c6baf48bab 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -698,7 +698,7 @@ jobs: # Developer Documentation Consolidator - You are an AI documentation consistency agent that daily reviews markdown files in the `specs/` directory, ensures they have a consistent technical tone, and produces a consolidated `developer.instructions.md` file. + You are an AI documentation consistency agent that daily reviews markdown files in the `scratchpad/` directory, ensures they have a consistent technical tone, and produces a consolidated `developer.instructions.md` file. ## Mission @@ -709,7 +709,7 @@ jobs: ## Current Context - **Repository**: __GH_AW_GITHUB_REPOSITORY__ - - **Specs Directory**: `specs/` + - **Specs Directory**: `scratchpad/` - **Target File**: `.github/agents/developer.instructions.agent.md` - **Cache Memory**: `/tmp/gh-aw/cache-memory/` @@ -741,7 +741,7 @@ jobs: ### 1. Identify All Markdown Files - Find all `.md` files in the `specs/` directory: + Find all `.md` files in the `scratchpad/` directory: ```bash find specs -name "*.md" @@ -757,12 +757,12 @@ jobs: Create an inventory of files: ``` - File: specs/README.md + File: scratchpad/README.md Purpose: Overview and index Lines: 50 Status: To be analyzed - File: specs/code-organization.md + File: scratchpad/code-organization.md Purpose: Code organization guidelines Lines: 350 Status: To be analyzed @@ -916,13 +916,13 @@ jobs: ## Overview [Brief introduction to the consolidated guidelines] - ## [Topic 1 from specs/] + ## [Topic 1 from scratchpad/] [Consolidated content from relevant spec files] - ## [Topic 2 from specs/] + ## [Topic 2 from scratchpad/] [Consolidated content from relevant spec files] - ## [Topic N from specs/] + ## [Topic N from scratchpad/] [Consolidated content from relevant spec files] ## Best Practices @@ -986,7 +986,7 @@ jobs: ```json { "date": "2025-11-06", - "files_analyzed": ["specs/README.md", "specs/code-organization.md", ...], + "files_analyzed": ["scratchpad/README.md", "scratchpad/code-organization.md", ...], "tone_adjustments": 15, "diagrams_added": 3, "total_lines_before": 2500, @@ -1019,14 +1019,14 @@ jobs: | File | Lines | Issues Found | Changes Made | |------|-------|--------------|--------------| - | specs/README.md | 50 | 2 tone issues | Fixed marketing language | - | specs/code-organization.md | 350 | 5 formatting | Added headings, code tags | + | scratchpad/README.md | 50 | 2 tone issues | Fixed marketing language | + | scratchpad/code-organization.md | 350 | 5 formatting | Added headings, code tags | | ... | ... | ... | ... | ## Tone Adjustments Made ### Marketing Language Removed - - File: specs/code-organization.md, Line 45 + - File: scratchpad/code-organization.md, Line 45 - Before: "Our powerful validation system makes it easy..." - After: "The validation system provides..." @@ -1153,7 +1153,7 @@ jobs: ```markdown ## Developer Documentation Consolidation - This PR consolidates markdown specifications from the `specs/` directory into a unified `.github/agents/developer.instructions.agent.md` file. + This PR consolidates markdown specifications from the `scratchpad/` directory into a unified `.github/agents/developer.instructions.agent.md` file. ### Changes Made @@ -1162,11 +1162,11 @@ jobs: - Added [Y] Mermaid diagrams for clarity - Standardized formatting across files - Consolidated into single instructions file + PROMPT_EOF + cat << 'PROMPT_EOF' >> "$GH_AW_PROMPT" ### Files Modified - PROMPT_EOF - cat << 'PROMPT_EOF' >> "$GH_AW_PROMPT" - Created/Updated: `.github/agents/developer.instructions.agent.md` - [List any spec files that were modified] @@ -1256,7 +1256,7 @@ jobs: ## Success Criteria A successful consolidation run: - - ✅ Analyzes all markdown files in specs/ + - ✅ Analyzes all markdown files in scratchpad/ - ✅ Uses Serena for static analysis - ✅ Fixes tone issues (marketing → technical) **by directly editing files** - ✅ Adds Mermaid diagrams where beneficial **by directly editing files** @@ -1326,7 +1326,7 @@ jobs: - name: Execute Claude Code CLI id: agentic_execution # Allowed tools (sorted): - # - Bash(cat specs/*.md) + # - Bash(cat scratchpad/*.md) # - Bash(cat) # - Bash(date) # - Bash(echo) @@ -1348,7 +1348,7 @@ jobs: # - Bash(sort) # - Bash(tail) # - Bash(uniq) - # - Bash(wc -l specs/*.md) + # - Bash(wc -l scratchpad/*.md) # - Bash(wc) # - Bash(yq) # - BashOutput @@ -1427,7 +1427,7 @@ jobs: GH_AW_TOOL_BINS=""; command -v go >/dev/null 2>&1 && GH_AW_TOOL_BINS="$(go env GOROOT)/bin:$GH_AW_TOOL_BINS"; [ -n "$JAVA_HOME" ] && GH_AW_TOOL_BINS="$JAVA_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CARGO_HOME" ] && GH_AW_TOOL_BINS="$CARGO_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$GEM_HOME" ] && GH_AW_TOOL_BINS="$GEM_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CONDA" ] && GH_AW_TOOL_BINS="$CONDA/bin:$GH_AW_TOOL_BINS"; [ -n "$PIPX_BIN_DIR" ] && GH_AW_TOOL_BINS="$PIPX_BIN_DIR:$GH_AW_TOOL_BINS"; [ -n "$SWIFT_PATH" ] && GH_AW_TOOL_BINS="$SWIFT_PATH:$GH_AW_TOOL_BINS"; [ -n "$DOTNET_ROOT" ] && GH_AW_TOOL_BINS="$DOTNET_ROOT:$GH_AW_TOOL_BINS"; export GH_AW_TOOL_BINS mkdir -p "$HOME/.cache" sudo -E awf --env-all --env "ANDROID_HOME=${ANDROID_HOME}" --env "ANDROID_NDK=${ANDROID_NDK}" --env "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}" --env "ANDROID_NDK_LATEST_HOME=${ANDROID_NDK_LATEST_HOME}" --env "ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}" --env "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" --env "AZURE_EXTENSION_DIR=${AZURE_EXTENSION_DIR}" --env "CARGO_HOME=${CARGO_HOME}" --env "CHROMEWEBDRIVER=${CHROMEWEBDRIVER}" --env "CONDA=${CONDA}" --env "DOTNET_ROOT=${DOTNET_ROOT}" --env "EDGEWEBDRIVER=${EDGEWEBDRIVER}" --env "GECKOWEBDRIVER=${GECKOWEBDRIVER}" --env "GEM_HOME=${GEM_HOME}" --env "GEM_PATH=${GEM_PATH}" --env "GOPATH=${GOPATH}" --env "GOROOT=${GOROOT}" --env "HOMEBREW_CELLAR=${HOMEBREW_CELLAR}" --env "HOMEBREW_PREFIX=${HOMEBREW_PREFIX}" --env "HOMEBREW_REPOSITORY=${HOMEBREW_REPOSITORY}" --env "JAVA_HOME=${JAVA_HOME}" --env "JAVA_HOME_11_X64=${JAVA_HOME_11_X64}" --env "JAVA_HOME_17_X64=${JAVA_HOME_17_X64}" --env "JAVA_HOME_21_X64=${JAVA_HOME_21_X64}" --env "JAVA_HOME_25_X64=${JAVA_HOME_25_X64}" --env "JAVA_HOME_8_X64=${JAVA_HOME_8_X64}" --env "NVM_DIR=${NVM_DIR}" --env "PIPX_BIN_DIR=${PIPX_BIN_DIR}" --env "PIPX_HOME=${PIPX_HOME}" --env "RUSTUP_HOME=${RUSTUP_HOME}" --env "SELENIUM_JAR_PATH=${SELENIUM_JAR_PATH}" --env "SWIFT_PATH=${SWIFT_PATH}" --env "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" --env "GH_AW_TOOL_BINS=$GH_AW_TOOL_BINS" --tty --container-workdir "${GITHUB_WORKSPACE}" --mount /tmp:/tmp:rw --mount "${HOME}/.cache:${HOME}/.cache:rw" --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" --mount /opt/hostedtoolcache:/opt/hostedtoolcache:ro --mount /opt/gh-aw:/opt/gh-aw:ro --allow-domains '*.githubusercontent.com,anthropic.com,api.anthropic.com,api.github.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,files.pythonhosted.org,ghcr.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,playwright.download.prss.microsoft.com,ppa.launchpad.net,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,sentry.io,statsig.anthropic.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com' --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.11.2 --agent-image act \ - -- /bin/bash -c 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && claude --print --disable-slash-commands --no-chrome --mcp-config /tmp/gh-aw/mcp-config/mcp-servers.json --allowed-tools '\''Bash(cat specs/*.md),Bash(cat),Bash(date),Bash(echo),Bash(find specs -maxdepth 1 -ls),Bash(find specs -name '\''\'\'''\''*.md'\''\'\'''\''),Bash(git add:*),Bash(git branch:*),Bash(git checkout:*),Bash(git commit:*),Bash(git merge:*),Bash(git rm:*),Bash(git status),Bash(git switch:*),Bash(grep -r '\''\'\'''\''*'\''\'\'''\'' specs),Bash(grep),Bash(head),Bash(ls),Bash(pwd),Bash(sort),Bash(tail),Bash(uniq),Bash(wc -l specs/*.md),Bash(wc),Bash(yq),BashOutput,Edit,Edit(/tmp/gh-aw/cache-memory/*),ExitPlanMode,Glob,Grep,KillBash,LS,MultiEdit,MultiEdit(/tmp/gh-aw/cache-memory/*),NotebookEdit,NotebookRead,Read,Read(/tmp/gh-aw/cache-memory/*),Task,TodoWrite,Write,Write(/tmp/gh-aw/cache-memory/*),mcp__github__download_workflow_run_artifact,mcp__github__get_code_scanning_alert,mcp__github__get_commit,mcp__github__get_dependabot_alert,mcp__github__get_discussion,mcp__github__get_discussion_comments,mcp__github__get_file_contents,mcp__github__get_job_logs,mcp__github__get_label,mcp__github__get_latest_release,mcp__github__get_me,mcp__github__get_notification_details,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_diff,mcp__github__get_pull_request_files,mcp__github__get_pull_request_review_comments,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__get_release_by_tag,mcp__github__get_secret_scanning_alert,mcp__github__get_tag,mcp__github__get_workflow_run,mcp__github__get_workflow_run_logs,mcp__github__get_workflow_run_usage,mcp__github__issue_read,mcp__github__list_branches,mcp__github__list_code_scanning_alerts,mcp__github__list_commits,mcp__github__list_dependabot_alerts,mcp__github__list_discussion_categories,mcp__github__list_discussions,mcp__github__list_issue_types,mcp__github__list_issues,mcp__github__list_label,mcp__github__list_notifications,mcp__github__list_pull_requests,mcp__github__list_releases,mcp__github__list_secret_scanning_alerts,mcp__github__list_starred_repositories,mcp__github__list_tags,mcp__github__list_workflow_jobs,mcp__github__list_workflow_run_artifacts,mcp__github__list_workflow_runs,mcp__github__list_workflows,mcp__github__pull_request_read,mcp__github__search_code,mcp__github__search_issues,mcp__github__search_orgs,mcp__github__search_pull_requests,mcp__github__search_repositories,mcp__github__search_users'\'' --debug-file /tmp/gh-aw/agent-stdio.log --verbose --permission-mode bypassPermissions --output-format json "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_CLAUDE:+ --model "$GH_AW_MODEL_AGENT_CLAUDE"}' + -- /bin/bash -c 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && claude --print --disable-slash-commands --no-chrome --mcp-config /tmp/gh-aw/mcp-config/mcp-servers.json --allowed-tools '\''Bash(cat scratchpad/*.md),Bash(cat),Bash(date),Bash(echo),Bash(find specs -maxdepth 1 -ls),Bash(find specs -name '\''\'\'''\''*.md'\''\'\'''\''),Bash(git add:*),Bash(git branch:*),Bash(git checkout:*),Bash(git commit:*),Bash(git merge:*),Bash(git rm:*),Bash(git status),Bash(git switch:*),Bash(grep -r '\''\'\'''\''*'\''\'\'''\'' specs),Bash(grep),Bash(head),Bash(ls),Bash(pwd),Bash(sort),Bash(tail),Bash(uniq),Bash(wc -l scratchpad/*.md),Bash(wc),Bash(yq),BashOutput,Edit,Edit(/tmp/gh-aw/cache-memory/*),ExitPlanMode,Glob,Grep,KillBash,LS,MultiEdit,MultiEdit(/tmp/gh-aw/cache-memory/*),NotebookEdit,NotebookRead,Read,Read(/tmp/gh-aw/cache-memory/*),Task,TodoWrite,Write,Write(/tmp/gh-aw/cache-memory/*),mcp__github__download_workflow_run_artifact,mcp__github__get_code_scanning_alert,mcp__github__get_commit,mcp__github__get_dependabot_alert,mcp__github__get_discussion,mcp__github__get_discussion_comments,mcp__github__get_file_contents,mcp__github__get_job_logs,mcp__github__get_label,mcp__github__get_latest_release,mcp__github__get_me,mcp__github__get_notification_details,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_diff,mcp__github__get_pull_request_files,mcp__github__get_pull_request_review_comments,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__get_release_by_tag,mcp__github__get_secret_scanning_alert,mcp__github__get_tag,mcp__github__get_workflow_run,mcp__github__get_workflow_run_logs,mcp__github__get_workflow_run_usage,mcp__github__issue_read,mcp__github__list_branches,mcp__github__list_code_scanning_alerts,mcp__github__list_commits,mcp__github__list_dependabot_alerts,mcp__github__list_discussion_categories,mcp__github__list_discussions,mcp__github__list_issue_types,mcp__github__list_issues,mcp__github__list_label,mcp__github__list_notifications,mcp__github__list_pull_requests,mcp__github__list_releases,mcp__github__list_secret_scanning_alerts,mcp__github__list_starred_repositories,mcp__github__list_tags,mcp__github__list_workflow_jobs,mcp__github__list_workflow_run_artifacts,mcp__github__list_workflow_runs,mcp__github__list_workflows,mcp__github__pull_request_read,mcp__github__search_code,mcp__github__search_issues,mcp__github__search_orgs,mcp__github__search_pull_requests,mcp__github__search_repositories,mcp__github__search_users'\'' --debug-file /tmp/gh-aw/agent-stdio.log --verbose --permission-mode bypassPermissions --output-format json "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_CLAUDE:+ --model "$GH_AW_MODEL_AGENT_CLAUDE"}' env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} BASH_DEFAULT_TIMEOUT_MS: 60000 diff --git a/.github/workflows/developer-docs-consolidator.md b/.github/workflows/developer-docs-consolidator.md index b7dc61a97e2..815dca6d598 100644 --- a/.github/workflows/developer-docs-consolidator.md +++ b/.github/workflows/developer-docs-consolidator.md @@ -40,10 +40,10 @@ tools: edit: bash: - "find specs -name '*.md'" - - "cat specs/*.md" + - "cat scratchpad/*.md" - "find specs -maxdepth 1 -ls" - "grep -r '*' specs" - - "wc -l specs/*.md" + - "wc -l scratchpad/*.md" timeout-minutes: 30 @@ -54,7 +54,7 @@ imports: # Developer Documentation Consolidator -You are an AI documentation consistency agent that daily reviews markdown files in the `specs/` directory, ensures they have a consistent technical tone, and produces a consolidated `developer.instructions.md` file. +You are an AI documentation consistency agent that daily reviews markdown files in the `scratchpad/` directory, ensures they have a consistent technical tone, and produces a consolidated `developer.instructions.md` file. ## Mission @@ -65,7 +65,7 @@ Analyze markdown files in the specs directory, standardize their tone and format ## Current Context - **Repository**: ${{ github.repository }} -- **Specs Directory**: `specs/` +- **Specs Directory**: `scratchpad/` - **Target File**: `.github/agents/developer.instructions.agent.md` - **Cache Memory**: `/tmp/gh-aw/cache-memory/` @@ -97,7 +97,7 @@ If there's a previous run's data, load it to understand historical context: ### 1. Identify All Markdown Files -Find all `.md` files in the `specs/` directory: +Find all `.md` files in the `scratchpad/` directory: ```bash find specs -name "*.md" @@ -113,12 +113,12 @@ For each markdown file found: Create an inventory of files: ``` -File: specs/README.md +File: scratchpad/README.md Purpose: Overview and index Lines: 50 Status: To be analyzed -File: specs/code-organization.md +File: scratchpad/code-organization.md Purpose: Code organization guidelines Lines: 350 Status: To be analyzed @@ -272,13 +272,13 @@ applyTo: "**/*" ## Overview [Brief introduction to the consolidated guidelines] -## [Topic 1 from specs/] +## [Topic 1 from scratchpad/] [Consolidated content from relevant spec files] -## [Topic 2 from specs/] +## [Topic 2 from scratchpad/] [Consolidated content from relevant spec files] -## [Topic N from specs/] +## [Topic N from scratchpad/] [Consolidated content from relevant spec files] ## Best Practices @@ -342,7 +342,7 @@ Save to `/tmp/gh-aw/cache-memory/consolidation/latest.json`: ```json { "date": "2025-11-06", - "files_analyzed": ["specs/README.md", "specs/code-organization.md", ...], + "files_analyzed": ["scratchpad/README.md", "scratchpad/code-organization.md", ...], "tone_adjustments": 15, "diagrams_added": 3, "total_lines_before": 2500, @@ -375,14 +375,14 @@ Analyzed [N] markdown files in the specs directory, made [X] tone adjustments, a | File | Lines | Issues Found | Changes Made | |------|-------|--------------|--------------| -| specs/README.md | 50 | 2 tone issues | Fixed marketing language | -| specs/code-organization.md | 350 | 5 formatting | Added headings, code tags | +| scratchpad/README.md | 50 | 2 tone issues | Fixed marketing language | +| scratchpad/code-organization.md | 350 | 5 formatting | Added headings, code tags | | ... | ... | ... | ... | ## Tone Adjustments Made ### Marketing Language Removed -- File: specs/code-organization.md, Line 45 +- File: scratchpad/code-organization.md, Line 45 - Before: "Our powerful validation system makes it easy..." - After: "The validation system provides..." @@ -509,7 +509,7 @@ After you've made file changes, a pull request will be created automatically wit ```markdown ## Developer Documentation Consolidation -This PR consolidates markdown specifications from the `specs/` directory into a unified `.github/agents/developer.instructions.agent.md` file. +This PR consolidates markdown specifications from the `scratchpad/` directory into a unified `.github/agents/developer.instructions.agent.md` file. ### Changes Made @@ -610,7 +610,7 @@ on: push ## Success Criteria A successful consolidation run: -- ✅ Analyzes all markdown files in specs/ +- ✅ Analyzes all markdown files in scratchpad/ - ✅ Uses Serena for static analysis - ✅ Fixes tone issues (marketing → technical) **by directly editing files** - ✅ Adds Mermaid diagrams where beneficial **by directly editing files** diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index cb128bc9d4e..30b96d1617d 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -652,7 +652,7 @@ jobs: 5. Research the module's GitHub repository for usage patterns and recent features 6. Analyze how this project uses the module 7. Identify potential improvements or better usage patterns - 8. Save a summary under `specs/mods/` and create a discussion with your findings + 8. Save a summary under `scratchpad/mods/` and create a discussion with your findings ## Step 1: Load Round-Robin State from Cache @@ -778,9 +778,9 @@ jobs: ## Step 6: Save Module Summary - Create or update a summary file under `specs/mods/`: + Create or update a summary file under `scratchpad/mods/`: - **File**: `specs/mods/.md` + **File**: `scratchpad/mods/.md` Structure: ```markdown @@ -878,7 +878,7 @@ jobs: --- *Generated by Go Fan* - *Module summary saved to: specs/mods/.md* + *Module summary saved to: scratchpad/mods/.md* ``` ## Guidelines @@ -888,7 +888,7 @@ jobs: - **Be Actionable**: Provide specific, implementable recommendations. - **Be Current**: Focus on recent features and updates. - **Track Progress**: Use cache-memory to maintain state across runs. - - **Save Summaries**: Always save detailed summaries to `specs/mods/`. + - **Save Summaries**: Always save detailed summaries to `scratchpad/mods/`. ## Serena Configuration @@ -906,10 +906,10 @@ jobs: ## Output Your output MUST include: - 1. A module summary saved to `specs/mods/.md` + 1. A module summary saved to `scratchpad/mods/.md` 2. A discussion with your complete analysis and recommendations - If you cannot find any improvements, still create a discussion noting the module is well-utilized and document your analysis in `specs/mods/`. + If you cannot find any improvements, still create a discussion noting the module is well-utilized and document your analysis in `scratchpad/mods/`. Begin your analysis! Pick the next module and start your deep review. @@ -974,12 +974,12 @@ jobs: # Allowed tools (sorted): # - Bash(cat go.mod) # - Bash(cat go.sum) - # - Bash(cat specs/mods/*) + # - Bash(cat scratchpad/mods/*) # - Bash(cat) # - Bash(date) # - Bash(echo) # - Bash(find pkg -name '*.go') - # - Bash(find specs/mods/ -maxdepth 1 -ls) + # - Bash(find scratchpad/mods/ -maxdepth 1 -ls) # - Bash(go list -m all) # - Bash(grep -r 'import' --include='*.go') # - Bash(grep) @@ -1067,7 +1067,7 @@ jobs: GH_AW_TOOL_BINS=""; command -v go >/dev/null 2>&1 && GH_AW_TOOL_BINS="$(go env GOROOT)/bin:$GH_AW_TOOL_BINS"; [ -n "$JAVA_HOME" ] && GH_AW_TOOL_BINS="$JAVA_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CARGO_HOME" ] && GH_AW_TOOL_BINS="$CARGO_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$GEM_HOME" ] && GH_AW_TOOL_BINS="$GEM_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CONDA" ] && GH_AW_TOOL_BINS="$CONDA/bin:$GH_AW_TOOL_BINS"; [ -n "$PIPX_BIN_DIR" ] && GH_AW_TOOL_BINS="$PIPX_BIN_DIR:$GH_AW_TOOL_BINS"; [ -n "$SWIFT_PATH" ] && GH_AW_TOOL_BINS="$SWIFT_PATH:$GH_AW_TOOL_BINS"; [ -n "$DOTNET_ROOT" ] && GH_AW_TOOL_BINS="$DOTNET_ROOT:$GH_AW_TOOL_BINS"; export GH_AW_TOOL_BINS mkdir -p "$HOME/.cache" sudo -E awf --env-all --env "ANDROID_HOME=${ANDROID_HOME}" --env "ANDROID_NDK=${ANDROID_NDK}" --env "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}" --env "ANDROID_NDK_LATEST_HOME=${ANDROID_NDK_LATEST_HOME}" --env "ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}" --env "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" --env "AZURE_EXTENSION_DIR=${AZURE_EXTENSION_DIR}" --env "CARGO_HOME=${CARGO_HOME}" --env "CHROMEWEBDRIVER=${CHROMEWEBDRIVER}" --env "CONDA=${CONDA}" --env "DOTNET_ROOT=${DOTNET_ROOT}" --env "EDGEWEBDRIVER=${EDGEWEBDRIVER}" --env "GECKOWEBDRIVER=${GECKOWEBDRIVER}" --env "GEM_HOME=${GEM_HOME}" --env "GEM_PATH=${GEM_PATH}" --env "GOPATH=${GOPATH}" --env "GOROOT=${GOROOT}" --env "HOMEBREW_CELLAR=${HOMEBREW_CELLAR}" --env "HOMEBREW_PREFIX=${HOMEBREW_PREFIX}" --env "HOMEBREW_REPOSITORY=${HOMEBREW_REPOSITORY}" --env "JAVA_HOME=${JAVA_HOME}" --env "JAVA_HOME_11_X64=${JAVA_HOME_11_X64}" --env "JAVA_HOME_17_X64=${JAVA_HOME_17_X64}" --env "JAVA_HOME_21_X64=${JAVA_HOME_21_X64}" --env "JAVA_HOME_25_X64=${JAVA_HOME_25_X64}" --env "JAVA_HOME_8_X64=${JAVA_HOME_8_X64}" --env "NVM_DIR=${NVM_DIR}" --env "PIPX_BIN_DIR=${PIPX_BIN_DIR}" --env "PIPX_HOME=${PIPX_HOME}" --env "RUSTUP_HOME=${RUSTUP_HOME}" --env "SELENIUM_JAR_PATH=${SELENIUM_JAR_PATH}" --env "SWIFT_PATH=${SWIFT_PATH}" --env "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" --env "GH_AW_TOOL_BINS=$GH_AW_TOOL_BINS" --tty --container-workdir "${GITHUB_WORKSPACE}" --mount /tmp:/tmp:rw --mount "${HOME}/.cache:${HOME}/.cache:rw" --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" --mount /opt/hostedtoolcache:/opt/hostedtoolcache:ro --mount /opt/gh-aw:/opt/gh-aw:ro --allow-domains '*.githubusercontent.com,anthropic.com,api.anthropic.com,api.github.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,files.pythonhosted.org,ghcr.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.com,github.githubassets.com,go.dev,golang.org,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,sentry.io,statsig.anthropic.com,sum.golang.org,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com' --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.11.2 --agent-image act \ - -- /bin/bash -c 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && claude --print --disable-slash-commands --no-chrome --mcp-config /tmp/gh-aw/mcp-config/mcp-servers.json --allowed-tools '\''Bash(cat go.mod),Bash(cat go.sum),Bash(cat specs/mods/*),Bash(cat),Bash(date),Bash(echo),Bash(find pkg -name '\''\'\'''\''*.go'\''\'\'''\''),Bash(find specs/mods/ -maxdepth 1 -ls),Bash(go list -m all),Bash(grep -r '\''\'\'''\''import'\''\'\'''\'' --include='\''\'\'''\''*.go'\''\'\'''\''),Bash(grep),Bash(head),Bash(ls),Bash(pwd),Bash(sort),Bash(tail),Bash(uniq),Bash(wc),Bash(yq),BashOutput,Edit,Edit(/tmp/gh-aw/cache-memory/*),ExitPlanMode,Glob,Grep,KillBash,LS,MultiEdit,MultiEdit(/tmp/gh-aw/cache-memory/*),NotebookEdit,NotebookRead,Read,Read(/tmp/gh-aw/cache-memory/*),Task,TodoWrite,Write,Write(/tmp/gh-aw/cache-memory/*),mcp__github__download_workflow_run_artifact,mcp__github__get_code_scanning_alert,mcp__github__get_commit,mcp__github__get_dependabot_alert,mcp__github__get_discussion,mcp__github__get_discussion_comments,mcp__github__get_file_contents,mcp__github__get_job_logs,mcp__github__get_label,mcp__github__get_latest_release,mcp__github__get_me,mcp__github__get_notification_details,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_diff,mcp__github__get_pull_request_files,mcp__github__get_pull_request_review_comments,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__get_release_by_tag,mcp__github__get_secret_scanning_alert,mcp__github__get_tag,mcp__github__get_workflow_run,mcp__github__get_workflow_run_logs,mcp__github__get_workflow_run_usage,mcp__github__issue_read,mcp__github__list_branches,mcp__github__list_code_scanning_alerts,mcp__github__list_commits,mcp__github__list_dependabot_alerts,mcp__github__list_discussion_categories,mcp__github__list_discussions,mcp__github__list_issue_types,mcp__github__list_issues,mcp__github__list_label,mcp__github__list_notifications,mcp__github__list_pull_requests,mcp__github__list_releases,mcp__github__list_secret_scanning_alerts,mcp__github__list_starred_repositories,mcp__github__list_tags,mcp__github__list_workflow_jobs,mcp__github__list_workflow_run_artifacts,mcp__github__list_workflow_runs,mcp__github__list_workflows,mcp__github__pull_request_read,mcp__github__search_code,mcp__github__search_issues,mcp__github__search_orgs,mcp__github__search_pull_requests,mcp__github__search_repositories,mcp__github__search_users'\'' --debug-file /tmp/gh-aw/agent-stdio.log --verbose --permission-mode bypassPermissions --output-format json "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_CLAUDE:+ --model "$GH_AW_MODEL_AGENT_CLAUDE"}' + -- /bin/bash -c 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && claude --print --disable-slash-commands --no-chrome --mcp-config /tmp/gh-aw/mcp-config/mcp-servers.json --allowed-tools '\''Bash(cat go.mod),Bash(cat go.sum),Bash(cat scratchpad/mods/*),Bash(cat),Bash(date),Bash(echo),Bash(find pkg -name '\''\'\'''\''*.go'\''\'\'''\''),Bash(find scratchpad/mods/ -maxdepth 1 -ls),Bash(go list -m all),Bash(grep -r '\''\'\'''\''import'\''\'\'''\'' --include='\''\'\'''\''*.go'\''\'\'''\''),Bash(grep),Bash(head),Bash(ls),Bash(pwd),Bash(sort),Bash(tail),Bash(uniq),Bash(wc),Bash(yq),BashOutput,Edit,Edit(/tmp/gh-aw/cache-memory/*),ExitPlanMode,Glob,Grep,KillBash,LS,MultiEdit,MultiEdit(/tmp/gh-aw/cache-memory/*),NotebookEdit,NotebookRead,Read,Read(/tmp/gh-aw/cache-memory/*),Task,TodoWrite,Write,Write(/tmp/gh-aw/cache-memory/*),mcp__github__download_workflow_run_artifact,mcp__github__get_code_scanning_alert,mcp__github__get_commit,mcp__github__get_dependabot_alert,mcp__github__get_discussion,mcp__github__get_discussion_comments,mcp__github__get_file_contents,mcp__github__get_job_logs,mcp__github__get_label,mcp__github__get_latest_release,mcp__github__get_me,mcp__github__get_notification_details,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_diff,mcp__github__get_pull_request_files,mcp__github__get_pull_request_review_comments,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__get_release_by_tag,mcp__github__get_secret_scanning_alert,mcp__github__get_tag,mcp__github__get_workflow_run,mcp__github__get_workflow_run_logs,mcp__github__get_workflow_run_usage,mcp__github__issue_read,mcp__github__list_branches,mcp__github__list_code_scanning_alerts,mcp__github__list_commits,mcp__github__list_dependabot_alerts,mcp__github__list_discussion_categories,mcp__github__list_discussions,mcp__github__list_issue_types,mcp__github__list_issues,mcp__github__list_label,mcp__github__list_notifications,mcp__github__list_pull_requests,mcp__github__list_releases,mcp__github__list_secret_scanning_alerts,mcp__github__list_starred_repositories,mcp__github__list_tags,mcp__github__list_workflow_jobs,mcp__github__list_workflow_run_artifacts,mcp__github__list_workflow_runs,mcp__github__list_workflows,mcp__github__pull_request_read,mcp__github__search_code,mcp__github__search_issues,mcp__github__search_orgs,mcp__github__search_pull_requests,mcp__github__search_repositories,mcp__github__search_users'\'' --debug-file /tmp/gh-aw/agent-stdio.log --verbose --permission-mode bypassPermissions --output-format json "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_CLAUDE:+ --model "$GH_AW_MODEL_AGENT_CLAUDE"}' env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} BASH_DEFAULT_TIMEOUT_MS: 60000 diff --git a/.github/workflows/go-fan.md b/.github/workflows/go-fan.md index f1507b58a66..f15cedd5718 100644 --- a/.github/workflows/go-fan.md +++ b/.github/workflows/go-fan.md @@ -44,8 +44,8 @@ tools: - "go list -m all" - "grep -r 'import' --include='*.go'" - "find pkg -name '*.go'" - - "find specs/mods/ -maxdepth 1 -ls" - - "cat specs/mods/*" + - "find scratchpad/mods/ -maxdepth 1 -ls" + - "cat scratchpad/mods/*" timeout-minutes: 30 strict: true @@ -71,7 +71,7 @@ Each day, you will: 5. Research the module's GitHub repository for usage patterns and recent features 6. Analyze how this project uses the module 7. Identify potential improvements or better usage patterns -8. Save a summary under `specs/mods/` and create a discussion with your findings +8. Save a summary under `scratchpad/mods/` and create a discussion with your findings ## Step 1: Load Round-Robin State from Cache @@ -197,9 +197,9 @@ Areas where the module could be better utilized: ## Step 6: Save Module Summary -Create or update a summary file under `specs/mods/`: +Create or update a summary file under `scratchpad/mods/`: -**File**: `specs/mods/.md` +**File**: `scratchpad/mods/.md` Structure: ```markdown @@ -297,7 +297,7 @@ Create a discussion summarizing your findings: --- *Generated by Go Fan* -*Module summary saved to: specs/mods/.md* +*Module summary saved to: scratchpad/mods/.md* ``` ## Guidelines @@ -307,7 +307,7 @@ Create a discussion summarizing your findings: - **Be Actionable**: Provide specific, implementable recommendations. - **Be Current**: Focus on recent features and updates. - **Track Progress**: Use cache-memory to maintain state across runs. -- **Save Summaries**: Always save detailed summaries to `specs/mods/`. +- **Save Summaries**: Always save detailed summaries to `scratchpad/mods/`. ## Serena Configuration @@ -325,9 +325,9 @@ Use Serena for: ## Output Your output MUST include: -1. A module summary saved to `specs/mods/.md` +1. A module summary saved to `scratchpad/mods/.md` 2. A discussion with your complete analysis and recommendations -If you cannot find any improvements, still create a discussion noting the module is well-utilized and document your analysis in `specs/mods/`. +If you cannot find any improvements, still create a discussion noting the module is well-utilized and document your analysis in `scratchpad/mods/`. Begin your analysis! Pick the next module and start your deep review. diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 8fd52ebd799..933a8091b98 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -773,7 +773,7 @@ jobs: ## Task - Analyze the last 100 open issues in repository __GH_AW_GITHUB_REPOSITORY__ (see `issues_analyzed` in specs/metrics-glossary.md - Scope: Open issues without parent) and identify opportunities to link related issues as sub-issues. + Analyze the last 100 open issues in repository __GH_AW_GITHUB_REPOSITORY__ (see `issues_analyzed` in scratchpad/metrics-glossary.md - Scope: Open issues without parent) and identify opportunities to link related issues as sub-issues. ## Pre-Downloaded Data @@ -870,7 +870,7 @@ jobs: ## 🌳 Issue Arborist Daily Report **Date**: [Current Date] - **Issues Analyzed** (`issues_analyzed`): 100 (Scope: Open issues without parent, see specs/metrics-glossary.md) + **Issues Analyzed** (`issues_analyzed`): 100 (Scope: Open issues without parent, see scratchpad/metrics-glossary.md) ### Parent Issues Created diff --git a/.github/workflows/issue-arborist.md b/.github/workflows/issue-arborist.md index 4e78f4dd83e..ee75ac5cb77 100644 --- a/.github/workflows/issue-arborist.md +++ b/.github/workflows/issue-arborist.md @@ -72,7 +72,7 @@ You are the Issue Arborist - an intelligent agent that cultivates the issue gard ## Task -Analyze the last 100 open issues in repository ${{ github.repository }} (see `issues_analyzed` in specs/metrics-glossary.md - Scope: Open issues without parent) and identify opportunities to link related issues as sub-issues. +Analyze the last 100 open issues in repository ${{ github.repository }} (see `issues_analyzed` in scratchpad/metrics-glossary.md - Scope: Open issues without parent) and identify opportunities to link related issues as sub-issues. ## Pre-Downloaded Data @@ -169,7 +169,7 @@ Your discussion should include: ## 🌳 Issue Arborist Daily Report **Date**: [Current Date] -**Issues Analyzed** (`issues_analyzed`): 100 (Scope: Open issues without parent, see specs/metrics-glossary.md) +**Issues Analyzed** (`issues_analyzed`): 100 (Scope: Open issues without parent, see scratchpad/metrics-glossary.md) ### Parent Issues Created diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 5d95914cd5d..81c83a17cc0 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -19,7 +19,7 @@ # gh aw compile # For more information: https://github.com/githubnext/gh-aw/blob/main/.github/aw/github-agentic-workflows.md # -# Maintains specs/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files +# Maintains scratchpad/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files name: "Layout Specification Maintainer" "on": @@ -550,7 +550,7 @@ jobs: ## Your Mission - Scan all `.lock.yml` files in `.github/workflows/` and analyze Go and JavaScript source code to extract patterns, then maintain an up-to-date specification document at `specs/layout.md`. + Scan all `.lock.yml` files in `.github/workflows/` and analyze Go and JavaScript source code to extract patterns, then maintain an up-to-date specification document at `scratchpad/layout.md`. ## Task Steps @@ -626,7 +626,7 @@ jobs: ### 4. Generate Markdown Specification - Create or update `specs/layout.md` with a comprehensive table organized by category: + Create or update `scratchpad/layout.md` with a comprehensive table organized by category: **Format**: @@ -687,7 +687,7 @@ jobs: | .github/aw/ | Agentic workflow configuration | Contains actions-lock.json and other configs | | pkg/workflow/ | Workflow compilation code | Go package for compiling workflows | | pkg/workflow/js/ | JavaScript runtime code | CommonJS modules for GitHub Actions | - | specs/ | Specification documents | Documentation and specs directory | + | scratchpad/ | Specification documents | Documentation and specs directory | ## Folder Patterns @@ -731,19 +731,19 @@ jobs: git status ``` - Check if `specs/layout.md` was created or modified. + Check if `scratchpad/layout.md` was created or modified. If changes detected: ```bash - git diff specs/layout.md + git diff scratchpad/layout.md ``` Review the changes to ensure they're accurate. ### 6. Create Pull Request - If `specs/layout.md` has changes, use the **create-pull-request** safe-output: + If `scratchpad/layout.md` has changes, use the **create-pull-request** safe-output: **PR Title**: `[specs] Update layout specification - [DATE]` @@ -751,7 +751,7 @@ jobs: ```markdown ## Layout Specification Update - This PR updates `specs/layout.md` with the latest patterns extracted from compiled workflow files. + This PR updates `scratchpad/layout.md` with the latest patterns extracted from compiled workflow files. ### What Changed @@ -806,7 +806,7 @@ jobs: ## Success Criteria - - `specs/layout.md` exists and is up-to-date + - `scratchpad/layout.md` exists and is up-to-date - All major patterns are documented - Tables are complete and well-formatted - PR is created when changes are detected @@ -869,7 +869,7 @@ jobs: # Copilot CLI tool arguments (sorted): # --allow-tool github # --allow-tool safeoutputs - # --allow-tool shell(cat specs/layout.md) + # --allow-tool shell(cat scratchpad/layout.md) # --allow-tool shell(cat) # --allow-tool shell(date) # --allow-tool shell(echo) @@ -878,7 +878,7 @@ jobs: # --allow-tool shell(git branch:*) # --allow-tool shell(git checkout:*) # --allow-tool shell(git commit:*) - # --allow-tool shell(git diff specs/layout.md) + # --allow-tool shell(git diff scratchpad/layout.md) # --allow-tool shell(git merge:*) # --allow-tool shell(git rm:*) # --allow-tool shell(git status) @@ -902,7 +902,7 @@ jobs: GH_AW_TOOL_BINS=""; command -v go >/dev/null 2>&1 && GH_AW_TOOL_BINS="$(go env GOROOT)/bin:$GH_AW_TOOL_BINS"; [ -n "$JAVA_HOME" ] && GH_AW_TOOL_BINS="$JAVA_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CARGO_HOME" ] && GH_AW_TOOL_BINS="$CARGO_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$GEM_HOME" ] && GH_AW_TOOL_BINS="$GEM_HOME/bin:$GH_AW_TOOL_BINS"; [ -n "$CONDA" ] && GH_AW_TOOL_BINS="$CONDA/bin:$GH_AW_TOOL_BINS"; [ -n "$PIPX_BIN_DIR" ] && GH_AW_TOOL_BINS="$PIPX_BIN_DIR:$GH_AW_TOOL_BINS"; [ -n "$SWIFT_PATH" ] && GH_AW_TOOL_BINS="$SWIFT_PATH:$GH_AW_TOOL_BINS"; [ -n "$DOTNET_ROOT" ] && GH_AW_TOOL_BINS="$DOTNET_ROOT:$GH_AW_TOOL_BINS"; export GH_AW_TOOL_BINS mkdir -p "$HOME/.cache" sudo -E awf --env-all --env "ANDROID_HOME=${ANDROID_HOME}" --env "ANDROID_NDK=${ANDROID_NDK}" --env "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}" --env "ANDROID_NDK_LATEST_HOME=${ANDROID_NDK_LATEST_HOME}" --env "ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}" --env "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" --env "AZURE_EXTENSION_DIR=${AZURE_EXTENSION_DIR}" --env "CARGO_HOME=${CARGO_HOME}" --env "CHROMEWEBDRIVER=${CHROMEWEBDRIVER}" --env "CONDA=${CONDA}" --env "DOTNET_ROOT=${DOTNET_ROOT}" --env "EDGEWEBDRIVER=${EDGEWEBDRIVER}" --env "GECKOWEBDRIVER=${GECKOWEBDRIVER}" --env "GEM_HOME=${GEM_HOME}" --env "GEM_PATH=${GEM_PATH}" --env "GOPATH=${GOPATH}" --env "GOROOT=${GOROOT}" --env "HOMEBREW_CELLAR=${HOMEBREW_CELLAR}" --env "HOMEBREW_PREFIX=${HOMEBREW_PREFIX}" --env "HOMEBREW_REPOSITORY=${HOMEBREW_REPOSITORY}" --env "JAVA_HOME=${JAVA_HOME}" --env "JAVA_HOME_11_X64=${JAVA_HOME_11_X64}" --env "JAVA_HOME_17_X64=${JAVA_HOME_17_X64}" --env "JAVA_HOME_21_X64=${JAVA_HOME_21_X64}" --env "JAVA_HOME_25_X64=${JAVA_HOME_25_X64}" --env "JAVA_HOME_8_X64=${JAVA_HOME_8_X64}" --env "NVM_DIR=${NVM_DIR}" --env "PIPX_BIN_DIR=${PIPX_BIN_DIR}" --env "PIPX_HOME=${PIPX_HOME}" --env "RUSTUP_HOME=${RUSTUP_HOME}" --env "SELENIUM_JAR_PATH=${SELENIUM_JAR_PATH}" --env "SWIFT_PATH=${SWIFT_PATH}" --env "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" --env "GH_AW_TOOL_BINS=$GH_AW_TOOL_BINS" --container-workdir "${GITHUB_WORKSPACE}" --mount /tmp:/tmp:rw --mount "${HOME}/.cache:${HOME}/.cache:rw" --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" --mount /usr/bin/cat:/usr/bin/cat:ro --mount /usr/bin/curl:/usr/bin/curl:ro --mount /usr/bin/date:/usr/bin/date:ro --mount /usr/bin/find:/usr/bin/find:ro --mount /usr/bin/gh:/usr/bin/gh:ro --mount /usr/bin/grep:/usr/bin/grep:ro --mount /usr/bin/jq:/usr/bin/jq:ro --mount /usr/bin/yq:/usr/bin/yq:ro --mount /usr/bin/cp:/usr/bin/cp:ro --mount /usr/bin/cut:/usr/bin/cut:ro --mount /usr/bin/diff:/usr/bin/diff:ro --mount /usr/bin/head:/usr/bin/head:ro --mount /usr/bin/ls:/usr/bin/ls:ro --mount /usr/bin/mkdir:/usr/bin/mkdir:ro --mount /usr/bin/rm:/usr/bin/rm:ro --mount /usr/bin/sed:/usr/bin/sed:ro --mount /usr/bin/sort:/usr/bin/sort:ro --mount /usr/bin/tail:/usr/bin/tail:ro --mount /usr/bin/wc:/usr/bin/wc:ro --mount /usr/bin/which:/usr/bin/which:ro --mount /usr/local/bin/copilot:/usr/local/bin/copilot:ro --mount /home/runner/.copilot:/home/runner/.copilot:rw --mount /opt/hostedtoolcache:/opt/hostedtoolcache:ro --mount /opt/gh-aw:/opt/gh-aw:ro --allow-domains '*.githubusercontent.com,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.com,github.githubassets.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com' --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.11.2 --agent-image act \ - -- 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --add-dir "${GITHUB_WORKSPACE}" --disable-builtin-mcps --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat specs/layout.md)'\'' --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find .github/workflows -name '\''\'\'''\''*.lock.yml'\''\'\'''\'')'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff specs/layout.md)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep -r '\''\'\'''\''.*'\''\'\'''\'' pkg/workflow/*.go)'\'' --allow-tool '\''shell(grep -r '\''\'\'''\''.*'\''\'\'''\'' pkg/workflow/js/)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq '\''\'\'''\''.*'\''\'\'''\'' .github/workflows/*.lock.yml)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --share /tmp/gh-aw/sandbox/agent/logs/conversation.md --prompt "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_COPILOT:+ --model "$GH_AW_MODEL_AGENT_COPILOT"}' \ + -- 'source /opt/gh-aw/actions/sanitize_path.sh "$GH_AW_TOOL_BINS$(find /opt/hostedtoolcache -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH" && /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --add-dir "${GITHUB_WORKSPACE}" --disable-builtin-mcps --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat scratchpad/layout.md)'\'' --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find .github/workflows -name '\''\'\'''\''*.lock.yml'\''\'\'''\'')'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff scratchpad/layout.md)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep -r '\''\'\'''\''.*'\''\'\'''\'' pkg/workflow/*.go)'\'' --allow-tool '\''shell(grep -r '\''\'\'''\''.*'\''\'\'''\'' pkg/workflow/js/)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq '\''\'\'''\''.*'\''\'\'''\'' .github/workflows/*.lock.yml)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --share /tmp/gh-aw/sandbox/agent/logs/conversation.md --prompt "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"${GH_AW_MODEL_AGENT_COPILOT:+ --model "$GH_AW_MODEL_AGENT_COPILOT"}' \ 2>&1 | tee /tmp/gh-aw/agent-stdio.log env: COPILOT_AGENT_RUNNER_TYPE: STANDALONE @@ -1211,7 +1211,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 env: WORKFLOW_NAME: "Layout Specification Maintainer" - WORKFLOW_DESCRIPTION: "Maintains specs/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files" + WORKFLOW_DESCRIPTION: "Maintains scratchpad/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files" HAS_PATCH: ${{ needs.agent.outputs.has_patch }} with: script: | diff --git a/.github/workflows/layout-spec-maintainer.md b/.github/workflows/layout-spec-maintainer.md index 937e0f8d5fd..38ffe10c27a 100644 --- a/.github/workflows/layout-spec-maintainer.md +++ b/.github/workflows/layout-spec-maintainer.md @@ -1,6 +1,6 @@ --- name: Layout Specification Maintainer -description: Maintains specs/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files +description: Maintains scratchpad/layout.md with patterns of file paths, folder names, and artifact names used in lock.yml files on: schedule: # Daily at 7am UTC on weekdays only @@ -48,8 +48,8 @@ tools: - "grep -r '.*' pkg/workflow/js/" - "grep -r '.*' pkg/workflow/*.go" - "git status" - - "git diff specs/layout.md" - - "cat specs/layout.md" + - "git diff scratchpad/layout.md" + - "cat scratchpad/layout.md" timeout-minutes: 20 @@ -61,7 +61,7 @@ You are an AI agent that maintains a comprehensive specification file documentin ## Your Mission -Scan all `.lock.yml` files in `.github/workflows/` and analyze Go and JavaScript source code to extract patterns, then maintain an up-to-date specification document at `specs/layout.md`. +Scan all `.lock.yml` files in `.github/workflows/` and analyze Go and JavaScript source code to extract patterns, then maintain an up-to-date specification document at `scratchpad/layout.md`. ## Task Steps @@ -137,7 +137,7 @@ grep -h "path" pkg/workflow/js/*.cjs | grep -E "(const|let|var)" | head -20 ### 4. Generate Markdown Specification -Create or update `specs/layout.md` with a comprehensive table organized by category: +Create or update `scratchpad/layout.md` with a comprehensive table organized by category: **Format**: @@ -198,7 +198,7 @@ Common file paths referenced in workflows: | .github/aw/ | Agentic workflow configuration | Contains actions-lock.json and other configs | | pkg/workflow/ | Workflow compilation code | Go package for compiling workflows | | pkg/workflow/js/ | JavaScript runtime code | CommonJS modules for GitHub Actions | -| specs/ | Specification documents | Documentation and specs directory | +| scratchpad/ | Specification documents | Documentation and specs directory | ## Folder Patterns @@ -242,19 +242,19 @@ After generating the specification: git status ``` -Check if `specs/layout.md` was created or modified. +Check if `scratchpad/layout.md` was created or modified. If changes detected: ```bash -git diff specs/layout.md +git diff scratchpad/layout.md ``` Review the changes to ensure they're accurate. ### 6. Create Pull Request -If `specs/layout.md` has changes, use the **create-pull-request** safe-output: +If `scratchpad/layout.md` has changes, use the **create-pull-request** safe-output: **PR Title**: `[specs] Update layout specification - [DATE]` @@ -262,7 +262,7 @@ If `specs/layout.md` has changes, use the **create-pull-request** safe-output: ```markdown ## Layout Specification Update -This PR updates `specs/layout.md` with the latest patterns extracted from compiled workflow files. +This PR updates `scratchpad/layout.md` with the latest patterns extracted from compiled workflow files. ### What Changed @@ -317,7 +317,7 @@ This helps improve efficiency over time and avoids re-discovering the same patte ## Success Criteria -- `specs/layout.md` exists and is up-to-date +- `scratchpad/layout.md` exists and is up-to-date - All major patterns are documented - Tables are complete and well-formatted - PR is created when changes are detected diff --git a/.github/workflows/shared/metrics-patterns.md b/.github/workflows/shared/metrics-patterns.md index cbe4ef3b0ba..77e80bac0b3 100644 --- a/.github/workflows/shared/metrics-patterns.md +++ b/.github/workflows/shared/metrics-patterns.md @@ -8,7 +8,7 @@ # # This import provides: # - Standardized metric calculation code snippets -# - References to specs/metrics-glossary.md for metric definitions +# - References to scratchpad/metrics-glossary.md for metric definitions # - Python patterns for issue, PR, code, and workflow metrics # - Bash/jq patterns for shell-based calculations # - Trend calculation helper functions @@ -28,13 +28,13 @@ imports: This shared component provides standardized code patterns for calculating common repository metrics, ensuring consistency across all reporting workflows. -**Reference**: All metric names and definitions follow `specs/metrics-glossary.md` standards. +**Reference**: All metric names and definitions follow `scratchpad/metrics-glossary.md` standards. ## Available Patterns ### 1. Issue Metrics (Python) -Use these patterns for analyzing GitHub issues data. All metric names follow `specs/metrics-glossary.md` standards. +Use these patterns for analyzing GitHub issues data. All metric names follow `scratchpad/metrics-glossary.md` standards. ```python import pandas as pd @@ -43,7 +43,7 @@ from datetime import datetime, timedelta import json # Load issues data -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions with open('/tmp/gh-aw/issues-data/issues.json', 'r') as f: issues = json.load(f) df = pd.DataFrame(issues) @@ -53,7 +53,7 @@ df['createdAt'] = pd.to_datetime(df['createdAt']) df['updatedAt'] = pd.to_datetime(df['updatedAt']) df['closedAt'] = pd.to_datetime(df['closedAt']) -# Standardized metric calculations (see specs/metrics-glossary.md) +# Standardized metric calculations (see scratchpad/metrics-glossary.md) now = datetime.now(df['createdAt'].iloc[0].tzinfo if len(df) > 0 else None) # Volume metrics @@ -105,7 +105,7 @@ else: ```bash # Calculate PR metrics using jq # Input: /tmp/gh-aw/pr-data/prs.json -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions # Volume metrics # Scope: All PRs in repository @@ -152,7 +152,7 @@ echo "Merge Rate: $merge_rate" ```bash # Lines of code metrics # Uses cloc for accurate language detection -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions # Ensure output directory exists mkdir -p /tmp/gh-aw/data @@ -183,7 +183,7 @@ if [ -f /tmp/gh-aw/data/cloc_output.json ] && [ -s /tmp/gh-aw/data/cloc_output.j # Calculate test-to-source ratio # Scope: test_lines_of_code / source_lines_of_code (excludes test files from source LOC) - # Per specs/metrics-glossary.md: "Excludes test files from source LOC calculation" + # Per scratchpad/metrics-glossary.md: "Excludes test files from source LOC calculation" if [ "$source_lines_of_code" -gt 0 ]; then test_to_source_ratio=$(echo "scale=3; $test_lines_of_code / $source_lines_of_code" | bc) else @@ -205,7 +205,7 @@ fi ```python # Calculate workflow performance metrics from logs data # Input: workflow_runs dict from agentic-workflows tool -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions import json @@ -226,7 +226,7 @@ def calculate_workflow_metrics(workflow_runs): workflow_runs: Dict mapping workflow name to list of run objects Returns: - Dict with workflow metrics following specs/metrics-glossary.md + Dict with workflow metrics following scratchpad/metrics-glossary.md """ workflow_metrics = {} @@ -269,7 +269,7 @@ def calculate_workflow_metrics(workflow_runs): ```python # Calculate trends from historical data -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions def calculate_trend(current_value, historical_values): """ @@ -385,10 +385,10 @@ echo "30 days ago: $DATE_30D" ### 1. Always Reference Metrics Glossary -Include comment references to `specs/metrics-glossary.md` above metric calculations: +Include comment references to `scratchpad/metrics-glossary.md` above metric calculations: ```python -# See specs/metrics-glossary.md for metric definitions +# See scratchpad/metrics-glossary.md for metric definitions # Scope: All issues in repository, no filters total_issues = len(df) @@ -408,7 +408,7 @@ recent_open_issues = len(df[ ### 3. Use Standardized Names -Follow naming conventions from `specs/metrics-glossary.md`: +Follow naming conventions from `scratchpad/metrics-glossary.md`: ✅ **GOOD**: ```python @@ -503,7 +503,7 @@ Then in your workflow, use the patterns: # Use the issue metrics patterns from this shared component # Copy-paste pattern #1 (Issue Metrics) here -# All metrics will follow specs/metrics-glossary.md standards +# All metrics will follow scratchpad/metrics-glossary.md standards ``` ### Example 2: Workflow Performance Report @@ -539,7 +539,7 @@ By using these standardized patterns, workflows benefit from: ## Related Documentation -- **Metrics Definitions**: `specs/metrics-glossary.md` +- **Metrics Definitions**: `scratchpad/metrics-glossary.md` - **Python Visualization**: `shared/python-dataviz.md` - **Trend Charts**: `shared/trends.md` - **Issue Data Fetching**: `shared/issues-data-fetch.md` diff --git a/AGENTS.md b/AGENTS.md index fb535e4124e..0ba67997eee 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -271,7 +271,7 @@ go test -v -run "Test.*Compile" ./pkg/workflow/ # Pattern matching ## Testing -For comprehensive testing guidelines, patterns, and conventions, see **[specs/testing.md](specs/testing.md)**. +For comprehensive testing guidelines, patterns, and conventions, see **[scratchpad/testing.md](scratchpad/testing.md)**. **Key testing principles:** - Use `require.*` for critical setup (stops test on failure) @@ -361,7 +361,7 @@ Contains 2+ distinct domains? ──YES──> Should split Keep as-is ``` -See **[specs/validation-refactoring.md](specs/validation-refactoring.md)** for step-by-step refactoring guide and examples. +See **[scratchpad/validation-refactoring.md](scratchpad/validation-refactoring.md)** for step-by-step refactoring guide and examples. ## Console Message Formatting @@ -458,7 +458,7 @@ DEBUG_COLORS=0 DEBUG=* gh aw compile ## CLI Command Patterns -For developing new CLI commands, follow these patterns and conventions. See **[specs/cli-command-patterns.md](specs/cli-command-patterns.md)** for comprehensive guidance. +For developing new CLI commands, follow these patterns and conventions. See **[scratchpad/cli-command-patterns.md](scratchpad/cli-command-patterns.md)** for comprehensive guidance. ### Command Structure @@ -624,7 +624,7 @@ When developing a new command: - [ ] Table-driven tests for multiple scenarios - [ ] Valid, invalid, and edge case tests -**See**: [specs/cli-command-patterns.md](specs/cli-command-patterns.md) for complete specification with examples and anti-patterns +**See**: [scratchpad/cli-command-patterns.md](scratchpad/cli-command-patterns.md) for complete specification with examples and anti-patterns ## Development Guidelines @@ -741,7 +741,7 @@ go test -race ./... **Primary YAML Library**: `goccy/go-yaml` v1.19.1 -gh-aw uses `goccy/go-yaml` for YAML 1.1/1.2 compatibility with GitHub Actions. See [specs/yaml-version-gotchas.md](specs/yaml-version-gotchas.md) for details on YAML version differences. +gh-aw uses `goccy/go-yaml` for YAML 1.1/1.2 compatibility with GitHub Actions. See [scratchpad/yaml-version-gotchas.md](scratchpad/yaml-version-gotchas.md) for details on YAML version differences. **Standard YAML Library**: `go.yaml.in/yaml/v3` v3.0.4 @@ -882,7 +882,7 @@ func ValidatePermissions(permissions *Permissions, githubTool any) - Large "god" interfaces with many methods - Type name collisions (use descriptive, domain-qualified names) -**See**: [specs/go-type-patterns.md](specs/go-type-patterns.md) for detailed guidance and examples +**See**: [scratchpad/go-type-patterns.md](scratchpad/go-type-patterns.md) for detailed guidance and examples ### Frontmatter Configuration Types @@ -1074,7 +1074,7 @@ Skills provide specialized, detailed knowledge on specific topics. **Use them on - **[console-rendering](skills/console-rendering/SKILL.md)** - Struct tag-based console rendering system for CLI output - **[error-messages](skills/error-messages/SKILL.md)** - Error message style guide for validation errors - **[error-pattern-safety](skills/error-pattern-safety/SKILL.md)** - Safety guidelines for error pattern regex -- **[error-recovery-patterns](specs/error-recovery-patterns.md)** - Error handling patterns, recovery strategies, and debugging techniques +- **[error-recovery-patterns](scratchpad/error-recovery-patterns.md)** - Error handling patterns, recovery strategies, and debugging techniques ### JavaScript & GitHub Actions - **[github-script](skills/github-script/SKILL.md)** - Best practices for GitHub Actions scripts using github-script diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6b9c62ad93c..28a9175d0e5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Fork to your GitHub account - Describe what you want to contribute - Explain the use case and expected behavior - Provide examples if applicable -- Tag with appropriate labels (see [Label Guidelines](specs/labels.md)) +- Tag with appropriate labels (see [Label Guidelines](scratchpad/labels.md)) ### Step 3: Create a Pull Request with GitHub Copilot Agent @@ -80,9 +80,9 @@ All contributions are made through GitHub Copilot Agent in pull requests. The ag The GitHub Copilot Agent automatically: -- **Reads specifications** from `specs/`, `skills/`, and `.github/instructions/` -- **Follows code organization patterns** (see [specs/code-organization.md](specs/code-organization.md)) -- **Implements validation** following the architecture in [specs/validation-architecture.md](specs/validation-architecture.md) +- **Reads specifications** from `scratchpad/`, `skills/`, and `.github/instructions/` +- **Follows code organization patterns** (see [scratchpad/code-organization.md](scratchpad/code-organization.md)) +- **Implements validation** following the architecture in [scratchpad/validation-architecture.md](scratchpad/validation-architecture.md) - **Uses console formatting** from `pkg/console` for CLI output - **Writes error messages** following the [Error Message Style Guide](.github/instructions/error-messages.instructions.md) - **Runs all quality checks**: `make agent-finish` (build, test, recompile, format, lint) @@ -96,7 +96,7 @@ Use the GitHub issue tracker to report bugs or request features: - Include detailed steps to reproduce issues - Explain the use case for feature requests - Provide examples if applicable -- Follow [Label Guidelines](specs/labels.md) +- Follow [Label Guidelines](scratchpad/labels.md) - The agent will read the issue and implement fixes in a PR ### Code Quality Standards @@ -147,7 +147,7 @@ The agent follows these principles: 3. **Focused Utilities Pattern** - Self-contained feature files - Examples: `expressions.go`, `strings.go`, `artifacts.go` -See [Code Organization Patterns](specs/code-organization.md) for details. +See [Code Organization Patterns](scratchpad/code-organization.md) for details. #### Validation Patterns @@ -167,7 +167,7 @@ The agent places validation logic appropriately: - `docker_validation.go` - Docker images - `expression_safety.go` - Expression security -See [Validation Architecture](specs/validation-architecture.md) for the complete decision tree. +See [Validation Architecture](scratchpad/validation-architecture.md) for the complete decision tree. #### CLI Breaking Changes @@ -182,7 +182,7 @@ For breaking changes, the agent: - Provides migration guidance - Documents in CHANGELOG.md -See [Breaking CLI Rules](specs/breaking-cli-rules.md) for details. +See [Breaking CLI Rules](scratchpad/breaking-cli-rules.md) for details. ## 🔄 Pull Request Process via GitHub Copilot Agent @@ -191,7 +191,7 @@ All pull requests are created and managed by GitHub Copilot Agent: 1. **Issue or discussion first:** - Open an issue describing what needs to be done - Provide clear context and examples - - Tag appropriately using [Label Guidelines](specs/labels.md) + - Tag appropriately using [Label Guidelines](scratchpad/labels.md) 2. **Agent creates the PR:** - Mention `@github-copilot agent` with instructions @@ -233,7 +233,7 @@ The agent understands this structure: │ ├── console/ # Console formatting utilities │ ├── parser/ # Markdown frontmatter parsing │ └── workflow/ # Workflow compilation and processing -├── specs/ # Technical specifications the agent reads +├── scratchpad/ # Technical specifications the agent reads ├── skills/ # Specialized knowledge for agents ├── .github/ # Instructions and sample workflows │ ├── instructions/ # Agent instructions @@ -347,7 +347,7 @@ Dependabot prioritizes security patches: ## 🧪 Testing -For comprehensive testing guidelines including assert vs require usage, table-driven test patterns, and best practices, see **[specs/testing.md](specs/testing.md)**. +For comprehensive testing guidelines including assert vs require usage, table-driven test patterns, and best practices, see **[scratchpad/testing.md](scratchpad/testing.md)**. Quick reference: - `make test-unit` - Fast unit tests (~25s) diff --git a/DEVGUIDE.md b/DEVGUIDE.md index c83d75f5fc5..657ad63e7bc 100644 --- a/DEVGUIDE.md +++ b/DEVGUIDE.md @@ -744,14 +744,14 @@ For complete command development patterns including: - Error handling best practices - Advanced patterns for complex commands -See: **[specs/cli-command-patterns.md](specs/cli-command-patterns.md)** +See: **[scratchpad/cli-command-patterns.md](scratchpad/cli-command-patterns.md)** ### Related Guidelines -- **Testing**: [specs/testing.md](specs/testing.md) - Comprehensive testing framework +- **Testing**: [scratchpad/testing.md](scratchpad/testing.md) - Comprehensive testing framework - **Console Output**: [skills/console-rendering/SKILL.md](skills/console-rendering/SKILL.md) - Output formatting - **Error Messages**: [skills/error-messages/SKILL.md](skills/error-messages/SKILL.md) - Error message style -- **Code Organization**: [specs/code-organization.md](specs/code-organization.md) - File structure patterns +- **Code Organization**: [scratchpad/code-organization.md](scratchpad/code-organization.md) - File structure patterns ## Debugging and Troubleshooting @@ -1037,7 +1037,7 @@ When adding new features: 4. **Write tests alongside** - Don't defer testing 5. **Document patterns** - Update this guide when introducing new patterns -For complete details, see [Code Organization Patterns](specs/code-organization.md). +For complete details, see [Code Organization Patterns](scratchpad/code-organization.md). diff --git a/docs/campaign-workers.md b/docs/campaign-workers.md index 94e8df623cb..e086a2c24e7 100644 --- a/docs/campaign-workers.md +++ b/docs/campaign-workers.md @@ -610,6 +610,6 @@ on: ## See Also -- [Campaign Files Architecture](../specs/campaigns-files.md) +- [Campaign Files Architecture](../scratchpad/campaigns-files.md) - [Campaign Examples](./src/content/docs/examples/campaigns.md) - [Safe Outputs Documentation](./src/content/docs/reference/safe-outputs.md) diff --git a/docs/src/content/docs/blog/2026-01-13-meet-the-workflows-continuous-improvement.md b/docs/src/content/docs/blog/2026-01-13-meet-the-workflows-continuous-improvement.md index c23633b21b5..feacfd88743 100644 --- a/docs/src/content/docs/blog/2026-01-13-meet-the-workflows-continuous-improvement.md +++ b/docs/src/content/docs/blog/2026-01-13-meet-the-workflows-continuous-improvement.md @@ -40,7 +40,7 @@ Go Fan uses an intelligent selection algorithm. It extracts direct dependencies This ensures recently updated modules get reviewed first since new features might be relevant, all modules eventually get reviewed so nothing is forgotten, and reviews don't repeat unnecessarily thanks to cache tracking. -For each selected module, Go Fan researches the module's repository including recent releases and changelog entries, documentation and best practices, and example usage patterns. It analyzes the project's actual usage by using Serena to find all imports and usage, examining actual code patterns, and identifying gaps between best practices and current usage. Then it generates recommendations suggesting better usage patterns, highlighting new features worth adopting, and identifying potential issues or anti-patterns. Finally, it saves summaries under `specs/mods/` and opens GitHub Discussions with findings, complete with specific code examples and recommendations. +For each selected module, Go Fan researches the module's repository including recent releases and changelog entries, documentation and best practices, and example usage patterns. It analyzes the project's actual usage by using Serena to find all imports and usage, examining actual code patterns, and identifying gaps between best practices and current usage. Then it generates recommendations suggesting better usage patterns, highlighting new features worth adopting, and identifying potential issues or anti-patterns. Finally, it saves summaries under `scratchpad/mods/` and opens GitHub Discussions with findings, complete with specific code examples and recommendations. The kinds of insights Go Fan produces are quite specific: "The Lipgloss update added adaptive color support - we're still using fixed colors in 12 places," or "Cobra now recommends using ValidArgsFunction instead of ValidArgs - we should migrate," or "We're using low-level HTTP client code - the `go-gh` module we already have provides better abstractions." diff --git a/pkg/cli/list_command_test.go b/pkg/cli/list_command_test.go index 8ce24780d4e..07ca9f97c18 100644 --- a/pkg/cli/list_command_test.go +++ b/pkg/cli/list_command_test.go @@ -8,7 +8,7 @@ import ( // TestListCommandPlaceholder is a placeholder test for the empty list_command.go file. // Once list_command.go implements actual functionality, this test should be replaced -// with comprehensive tests following the patterns in specs/testing.md. +// with comprehensive tests following the patterns in scratchpad/testing.md. func TestListCommandPlaceholder(t *testing.T) { // This test verifies that the package compiles correctly. // Add actual tests when list_command.go contains functionality. diff --git a/pkg/cli/templates/generate-agentic-campaign.md b/pkg/cli/templates/generate-agentic-campaign.md index 5677799ee29..56b7cd9e2e8 100644 --- a/pkg/cli/templates/generate-agentic-campaign.md +++ b/pkg/cli/templates/generate-agentic-campaign.md @@ -94,7 +94,7 @@ Use `update_issue` with `operation: "append"` so you **do not overwrite** the or Docs to link: - Getting started: https://githubnext.github.io/gh-aw/guides/campaigns/getting-started/ - Flow & lifecycle: https://githubnext.github.io/gh-aw/guides/campaigns/flow/ -- Campaign specs: https://githubnext.github.io/gh-aw/guides/campaigns/specs/ +- Campaign specs: https://githubnext.github.io/gh-aw/guides/campaigns/scratchpad/ ### Required structure for the issue update diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index c27c539480e..c62c1833d2a 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -21,7 +21,7 @@ const CLIExtensionPrefix CommandPrefix = "gh aw" // - Clear intent: Signals to readers what the value represents // - Easy refactoring: Can change implementation without affecting API // -// See specs/go-type-patterns.md for detailed guidance on type patterns. +// See scratchpad/go-type-patterns.md for detailed guidance on type patterns. // LineLength represents a line length in characters for expression formatting. // This semantic type distinguishes line lengths from arbitrary integers, diff --git a/pkg/parser/import_processor.go b/pkg/parser/import_processor.go index 2cc55e7656e..6ac457a414a 100644 --- a/pkg/parser/import_processor.go +++ b/pkg/parser/import_processor.go @@ -35,7 +35,7 @@ type ImportsResult struct { // ImportInputs uses map[string]any because input values can be different types (string, number, boolean). // This is parsed from YAML frontmatter where the structure is dynamic and not known at compile time. // This is an appropriate use of 'any' for dynamic YAML/JSON data. - // See specs/go-type-patterns.md for guidance on when to use map[string]any. + // See scratchpad/go-type-patterns.md for guidance on when to use map[string]any. ImportInputs map[string]any // Aggregated input values from all imports (key = input name, value = input value) } @@ -56,7 +56,7 @@ type ImportSpec struct { Path string // Import path (required) // Inputs uses map[string]any because input values can be different types (string, number, boolean). // This is parsed from YAML frontmatter and validated against the imported workflow's input definitions. - // This is an appropriate use of 'any' for dynamic YAML data. See specs/go-type-patterns.md. + // This is an appropriate use of 'any' for dynamic YAML data. See scratchpad/go-type-patterns.md. Inputs map[string]any // Optional input values to pass to the imported workflow (values are string, number, or boolean) } @@ -65,7 +65,7 @@ type ImportSpec struct { // // Type Pattern Note: frontmatter uses map[string]any because it represents parsed YAML with // dynamic structure that varies by workflow. This is the appropriate pattern for parsing -// user-provided configuration files. See specs/go-type-patterns.md for guidance. +// user-provided configuration files. See scratchpad/go-type-patterns.md for guidance. func ProcessImportsFromFrontmatter(frontmatter map[string]any, baseDir string) (mergedTools string, mergedEngines []string, err error) { log.Printf("Processing imports from frontmatter: baseDir=%s", baseDir) result, err := ProcessImportsFromFrontmatterWithManifest(frontmatter, baseDir, nil) diff --git a/pkg/styles/theme.go b/pkg/styles/theme.go index b9a5e3f8572..c6788899b97 100644 --- a/pkg/styles/theme.go +++ b/pkg/styles/theme.go @@ -27,7 +27,7 @@ // - Structural colors: Comment (muted text), Foreground (primary text), Background, Border // // Each color constant is documented with its light/dark hex values and semantic usage. -// For visual examples and usage guidelines, see specs/styles-guide.md +// For visual examples and usage guidelines, see scratchpad/styles-guide.md // // # Usage Example // diff --git a/pkg/workflow/agent_validation.go b/pkg/workflow/agent_validation.go index ab1cc2431d7..c892e8ed5e8 100644 --- a/pkg/workflow/agent_validation.go +++ b/pkg/workflow/agent_validation.go @@ -39,7 +39,7 @@ // - It enforces security constraints on triggers // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/artifact_manager_workflows_integration_test.go b/pkg/workflow/artifact_manager_workflows_integration_test.go index 13d11a50243..b7bf53bb697 100644 --- a/pkg/workflow/artifact_manager_workflows_integration_test.go +++ b/pkg/workflow/artifact_manager_workflows_integration_test.go @@ -100,7 +100,7 @@ func TestGenerateArtifactsReference(t *testing.T) { // Generate the markdown reference document markdown := generateArtifactsMarkdown(workflowArtifacts, artifactsByJob) - // Write to specs/artifacts.md + // Write to scratchpad/artifacts.md specsDir := filepath.Join("..", "..", "specs") err = os.MkdirAll(specsDir, 0755) require.NoError(t, err, "Failed to create specs directory") diff --git a/pkg/workflow/bundler_runtime_validation.go b/pkg/workflow/bundler_runtime_validation.go index 838b427da87..3aae9bac732 100644 --- a/pkg/workflow/bundler_runtime_validation.go +++ b/pkg/workflow/bundler_runtime_validation.go @@ -36,7 +36,7 @@ // For bundle safety validation, see bundler_safety_validation.go. // For script content validation, see bundler_script_validation.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/bundler_safety_validation.go b/pkg/workflow/bundler_safety_validation.go index 664ad429276..fa3481ca9c5 100644 --- a/pkg/workflow/bundler_safety_validation.go +++ b/pkg/workflow/bundler_safety_validation.go @@ -31,7 +31,7 @@ // For runtime mode validation, see bundler_runtime_validation.go. // For script content validation, see bundler_script_validation.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/bundler_script_validation.go b/pkg/workflow/bundler_script_validation.go index d60f17c5837..b27ee5f1b77 100644 --- a/pkg/workflow/bundler_script_validation.go +++ b/pkg/workflow/bundler_script_validation.go @@ -35,7 +35,7 @@ // For bundle safety validation, see bundler_safety_validation.go. // For runtime mode validation, see bundler_runtime_validation.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/compiler_filters_validation.go b/pkg/workflow/compiler_filters_validation.go index 7b54dd8a125..7c95fede6bc 100644 --- a/pkg/workflow/compiler_filters_validation.go +++ b/pkg/workflow/compiler_filters_validation.go @@ -28,7 +28,7 @@ // - It validates mutual exclusivity of filter options // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/docker_validation.go b/pkg/workflow/docker_validation.go index 4b5b0586c7e..218add10208 100644 --- a/pkg/workflow/docker_validation.go +++ b/pkg/workflow/docker_validation.go @@ -27,7 +27,7 @@ // // For Docker image collection functions, see docker.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/engine_validation.go b/pkg/workflow/engine_validation.go index 3401cf89b15..6511c188e10 100644 --- a/pkg/workflow/engine_validation.go +++ b/pkg/workflow/engine_validation.go @@ -29,7 +29,7 @@ // // For engine configuration extraction, see engine.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/env_mirror.go b/pkg/workflow/env_mirror.go index c9e5132b56e..530cf0f7a5c 100644 --- a/pkg/workflow/env_mirror.go +++ b/pkg/workflow/env_mirror.go @@ -10,7 +10,7 @@ // environment variables only if they exist on the host. This ensures graceful // handling of missing variables. // -// Reference: specs/ubuntulatest.md section "Environment Variables" +// Reference: scratchpad/ubuntulatest.md section "Environment Variables" package workflow @@ -33,7 +33,7 @@ var envMirrorLog = logger.New("workflow:env_mirror") // - Go workspace path // // Variables are only passed through if they exist on the host runner. -// Reference: specs/ubuntulatest.md +// Reference: scratchpad/ubuntulatest.md var MirroredEnvVars = []string{ // Java JDK homes (multiple versions available on Ubuntu runner) "JAVA_HOME", diff --git a/pkg/workflow/expression_validation.go b/pkg/workflow/expression_validation.go index a339572c771..43902ea64c1 100644 --- a/pkg/workflow/expression_validation.go +++ b/pkg/workflow/expression_validation.go @@ -39,7 +39,7 @@ // - It validates expression syntax and structure // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/mcp_config_validation.go b/pkg/workflow/mcp_config_validation.go index 79e83dd52f8..6aec29c2b7e 100644 --- a/pkg/workflow/mcp_config_validation.go +++ b/pkg/workflow/mcp_config_validation.go @@ -40,7 +40,7 @@ // - It ensures MCP configuration correctness // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/npm.go b/pkg/workflow/npm.go index 7f184af2a41..ec88d4e650a 100644 --- a/pkg/workflow/npm.go +++ b/pkg/workflow/npm.go @@ -12,7 +12,7 @@ // - extractNpxFromCommands() - Parses command strings to find npx packages // // For package validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/npm_validation.go b/pkg/workflow/npm_validation.go index 8984774667b..8649c856f47 100644 --- a/pkg/workflow/npm_validation.go +++ b/pkg/workflow/npm_validation.go @@ -27,7 +27,7 @@ // // For package extraction functions, see npm.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/pip.go b/pkg/workflow/pip.go index 68acb11e8ac..e77081951c0 100644 --- a/pkg/workflow/pip.go +++ b/pkg/workflow/pip.go @@ -23,7 +23,7 @@ // // For package validation functions, see pip_validation.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/pip_validation.go b/pkg/workflow/pip_validation.go index e2150876878..fa712468b55 100644 --- a/pkg/workflow/pip_validation.go +++ b/pkg/workflow/pip_validation.go @@ -30,7 +30,7 @@ // // For package extraction functions, see pip.go. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/prompt_step_helper.go b/pkg/workflow/prompt_step_helper.go index 699a52fcf5d..2d8d29ca97e 100644 --- a/pkg/workflow/prompt_step_helper.go +++ b/pkg/workflow/prompt_step_helper.go @@ -54,7 +54,7 @@ // - No inline shell script interpolation (prevents injection) // - Safe placeholder substitution via JavaScript // -// See specs/template-injection-prevention.md for security details. +// See scratchpad/template-injection-prevention.md for security details. // // # When to Use vs Alternatives // diff --git a/pkg/workflow/repository_features_validation.go b/pkg/workflow/repository_features_validation.go index f3ab5a9cf45..118e984ab57 100644 --- a/pkg/workflow/repository_features_validation.go +++ b/pkg/workflow/repository_features_validation.go @@ -32,7 +32,7 @@ // - It benefits from caching to reduce API usage // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/runtime_validation.go b/pkg/workflow/runtime_validation.go index 99cd35f8fd3..20b9787e05d 100644 --- a/pkg/workflow/runtime_validation.go +++ b/pkg/workflow/runtime_validation.go @@ -41,7 +41,7 @@ // - It requires external resource checking // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/schema_validation.go b/pkg/workflow/schema_validation.go index aabe2d40f39..c5bf00798d5 100644 --- a/pkg/workflow/schema_validation.go +++ b/pkg/workflow/schema_validation.go @@ -34,7 +34,7 @@ // - It requires schema compilation and caching // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/strict_mode_validation.go b/pkg/workflow/strict_mode_validation.go index 07f103f8442..4fe05e3f3ec 100644 --- a/pkg/workflow/strict_mode_validation.go +++ b/pkg/workflow/strict_mode_validation.go @@ -35,7 +35,7 @@ // - It enforces tool usage restrictions for security // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/pkg/workflow/strings.go b/pkg/workflow/strings.go index 1cf7a74362a..52867e7c785 100644 --- a/pkg/workflow/strings.go +++ b/pkg/workflow/strings.go @@ -71,7 +71,7 @@ // - Standardizing naming conventions (dashes to underscores) // - Input is already valid but needs format conversion // -// See specs/string-sanitization-normalization.md for detailed guidance. +// See scratchpad/string-sanitization-normalization.md for detailed guidance. package workflow diff --git a/pkg/workflow/template_injection_validation.go b/pkg/workflow/template_injection_validation.go index 27558b330ea..1bf650e5ca9 100644 --- a/pkg/workflow/template_injection_validation.go +++ b/pkg/workflow/template_injection_validation.go @@ -42,8 +42,8 @@ // - It provides security-focused compile-time checks // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md and -// specs/template-injection-prevention.md +// For detailed documentation, see scratchpad/validation-architecture.md and +// scratchpad/template-injection-prevention.md package workflow @@ -270,7 +270,7 @@ func formatTemplateInjectionError(violations []TemplateInjectionViolation) error builder.WriteString("References:\n") builder.WriteString(" - https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions\n") builder.WriteString(" - https://docs.zizmor.sh/audits/#template-injection\n") - builder.WriteString(" - specs/template-injection-prevention.md\n") + builder.WriteString(" - scratchpad/template-injection-prevention.md\n") return fmt.Errorf("%s", builder.String()) } diff --git a/pkg/workflow/template_validation.go b/pkg/workflow/template_validation.go index 7016749bb5c..c9eb88c3d20 100644 --- a/pkg/workflow/template_validation.go +++ b/pkg/workflow/template_validation.go @@ -25,7 +25,7 @@ // - It ensures template compatibility with other features // // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow diff --git a/specs/README.md b/scratchpad/README.md similarity index 100% rename from specs/README.md rename to scratchpad/README.md diff --git a/specs/actions.md b/scratchpad/actions.md similarity index 100% rename from specs/actions.md rename to scratchpad/actions.md diff --git a/specs/agent-container-testing.md b/scratchpad/agent-container-testing.md similarity index 100% rename from specs/agent-container-testing.md rename to scratchpad/agent-container-testing.md diff --git a/specs/agent-sessions.md b/scratchpad/agent-sessions.md similarity index 95% rename from specs/agent-sessions.md rename to scratchpad/agent-sessions.md index a3bef70a6fc..4452bc69555 100644 --- a/specs/agent-sessions.md +++ b/scratchpad/agent-sessions.md @@ -17,7 +17,7 @@ The terminology for starting an agent is changing from "New Agent Task" to "New 1. **Code**: Go source files with types, variables, functions 2. **JavaScript**: CommonJS action files 3. **Schema**: JSON schema definitions -4. **Documentation**: Markdown files in docs/ and specs/ +4. **Documentation**: Markdown files in docs/ and scratchpad/ 5. **Skills**: Skill documentation 6. **Codemods**: Migration scripts for user workflows 7. **Tests**: Test files and fixtures @@ -74,11 +74,11 @@ The terminology for starting an agent is changing from "New Agent Task" to "New - `install.md` - Installation guide **Specs Files**: -- `specs/code-organization.md` - Code organization patterns -- `specs/layout.md` - Layout documentation -- `specs/safe-output-environment-variables.md` - Environment variables -- `specs/security_review.md` - Security review -- `specs/template-injection-prevention.md` - Security patterns +- `scratchpad/code-organization.md` - Code organization patterns +- `scratchpad/layout.md` - Layout documentation +- `scratchpad/safe-output-environment-variables.md` - Environment variables +- `scratchpad/security_review.md` - Security review +- `scratchpad/template-injection-prevention.md` - Security patterns **Test Workflows**: - `pkg/cli/workflows/test-copilot-create-agent-session.md` - Test workflow @@ -211,7 +211,7 @@ Since the configuration key `create-agent-session` is changing to `create-agent- - `CHANGELOG.md` 5. **Update Specs** - - All files in `specs/` directory + - All files in `scratchpad/` directory ### Phase 5: Test Migration @@ -347,11 +347,11 @@ During transition period: - [ ] `CHANGELOG.md` - Add migration entry - [ ] Update Specs - - [ ] `specs/code-organization.md` - - [ ] `specs/layout.md` - - [ ] `specs/safe-output-environment-variables.md` - - [ ] `specs/security_review.md` - - [ ] `specs/template-injection-prevention.md` + - [ ] `scratchpad/code-organization.md` + - [ ] `scratchpad/layout.md` + - [ ] `scratchpad/safe-output-environment-variables.md` + - [ ] `scratchpad/security_review.md` + - [ ] `scratchpad/template-injection-prevention.md` - [ ] Update Templates - [ ] `pkg/cli/templates/github-agentic-workflows.md` diff --git a/specs/agents/hierarchical-agents-quickstart.md b/scratchpad/agents/hierarchical-agents-quickstart.md similarity index 100% rename from specs/agents/hierarchical-agents-quickstart.md rename to scratchpad/agents/hierarchical-agents-quickstart.md diff --git a/specs/agents/hierarchical-agents.md b/scratchpad/agents/hierarchical-agents.md similarity index 100% rename from specs/agents/hierarchical-agents.md rename to scratchpad/agents/hierarchical-agents.md diff --git a/specs/artifact-naming-compatibility.md b/scratchpad/artifact-naming-compatibility.md similarity index 100% rename from specs/artifact-naming-compatibility.md rename to scratchpad/artifact-naming-compatibility.md diff --git a/specs/artifacts.md b/scratchpad/artifacts.md similarity index 100% rename from specs/artifacts.md rename to scratchpad/artifacts.md diff --git a/specs/breaking-cli-rules.md b/scratchpad/breaking-cli-rules.md similarity index 99% rename from specs/breaking-cli-rules.md rename to scratchpad/breaking-cli-rules.md index 242947579ed..4b36fccf16a 100644 --- a/specs/breaking-cli-rules.md +++ b/scratchpad/breaking-cli-rules.md @@ -267,7 +267,7 @@ Special consideration for strict mode changes: ## References -- **Changeset System**: See `specs/changesets.md` for version management +- **Changeset System**: See `scratchpad/changesets.md` for version management - **CHANGELOG**: See `CHANGELOG.md` for examples of breaking changes - **Semantic Versioning**: https://semver.org/ diff --git a/specs/campaigns-files.md b/scratchpad/campaigns-files.md similarity index 100% rename from specs/campaigns-files.md rename to scratchpad/campaigns-files.md diff --git a/specs/capitalization.md b/scratchpad/capitalization.md similarity index 100% rename from specs/capitalization.md rename to scratchpad/capitalization.md diff --git a/specs/changesets.md b/scratchpad/changesets.md similarity index 100% rename from specs/changesets.md rename to scratchpad/changesets.md diff --git a/specs/cli-command-patterns.md b/scratchpad/cli-command-patterns.md similarity index 99% rename from specs/cli-command-patterns.md rename to scratchpad/cli-command-patterns.md index 81d8ad50201..26166af3644 100644 --- a/specs/cli-command-patterns.md +++ b/scratchpad/cli-command-patterns.md @@ -1073,11 +1073,11 @@ Use this checklist when developing a new command: ## Related Documentation -- **Testing Framework**: See `specs/testing.md` for comprehensive testing guidelines +- **Testing Framework**: See `scratchpad/testing.md` for comprehensive testing guidelines - **Console Rendering**: See `skills/console-rendering/SKILL.md` for console output details - **Error Messages**: See `skills/error-messages/SKILL.md` for error message style guide -- **Code Organization**: See `specs/code-organization.md` for file organization patterns -- **Breaking Changes**: See `specs/breaking-cli-rules.md` for breaking change guidelines +- **Code Organization**: See `scratchpad/code-organization.md` for file organization patterns +- **Breaking Changes**: See `scratchpad/breaking-cli-rules.md` for breaking change guidelines --- diff --git a/specs/code-organization.md b/scratchpad/code-organization.md similarity index 100% rename from specs/code-organization.md rename to scratchpad/code-organization.md diff --git a/specs/debugging-action-pinning.md b/scratchpad/debugging-action-pinning.md similarity index 100% rename from specs/debugging-action-pinning.md rename to scratchpad/debugging-action-pinning.md diff --git a/specs/end-to-end-feature-testing.md b/scratchpad/end-to-end-feature-testing.md similarity index 100% rename from specs/end-to-end-feature-testing.md rename to scratchpad/end-to-end-feature-testing.md diff --git a/specs/error-recovery-patterns.md b/scratchpad/error-recovery-patterns.md similarity index 99% rename from specs/error-recovery-patterns.md rename to scratchpad/error-recovery-patterns.md index 15d0b4201dc..0a3aae263c7 100644 --- a/specs/error-recovery-patterns.md +++ b/scratchpad/error-recovery-patterns.md @@ -507,7 +507,7 @@ on: - `on`, `off` (parsed as booleans) - Numbers starting with 0 (parsed as octal) -See `specs/yaml-version-gotchas.md` for complete guide. +See `scratchpad/yaml-version-gotchas.md` for complete guide. #### Scenario: Expression Size Limit Exceeded @@ -1130,7 +1130,7 @@ func TestValidationErrorMessage(t *testing.T) { } ``` -See `specs/testing.md` for complete testing guidelines. +See `scratchpad/testing.md` for complete testing guidelines. --- diff --git a/specs/errors.md b/scratchpad/errors.md similarity index 100% rename from specs/errors.md rename to scratchpad/errors.md diff --git a/specs/file-inlining.md b/scratchpad/file-inlining.md similarity index 100% rename from specs/file-inlining.md rename to scratchpad/file-inlining.md diff --git a/specs/firewall-log-parsing.md b/scratchpad/firewall-log-parsing.md similarity index 100% rename from specs/firewall-log-parsing.md rename to scratchpad/firewall-log-parsing.md diff --git a/specs/gastown.md b/scratchpad/gastown.md similarity index 100% rename from specs/gastown.md rename to scratchpad/gastown.md diff --git a/specs/github-actions-security-best-practices.md b/scratchpad/github-actions-security-best-practices.md similarity index 100% rename from specs/github-actions-security-best-practices.md rename to scratchpad/github-actions-security-best-practices.md diff --git a/specs/github-mcp-access-control-specification.md b/scratchpad/github-mcp-access-control-specification.md similarity index 99% rename from specs/github-mcp-access-control-specification.md rename to scratchpad/github-mcp-access-control-specification.md index 512b9045cbc..a0699174b54 100644 --- a/specs/github-mcp-access-control-specification.md +++ b/scratchpad/github-mcp-access-control-specification.md @@ -9,7 +9,7 @@ sidebar: **Version**: 1.0.0 **Status**: Draft -**Latest Version**: [github-mcp-access-control-specification](/gh-aw/specs/github-mcp-access-control-specification/) +**Latest Version**: [github-mcp-access-control-specification](/gh-aw/scratchpad/github-mcp-access-control-specification/) **JSON Schema**: [mcp-gateway-config.schema.json](/gh-aw/schemas/mcp-gateway-config.schema.json) **Editors**: GitHub Agentic Workflows Team @@ -1989,7 +1989,7 @@ GitHub API rate limits apply to: - **[Safe Inputs Spec]** Safe Inputs Specification, GitHub Agentic Workflows. [/gh-aw/reference/safe-inputs-specification/](/gh-aw/reference/safe-inputs-specification/) -- **[Safe Outputs Spec]** Safe Outputs System Specification, GitHub Agentic Workflows. [/gh-aw/specs/safe-outputs-specification/](/gh-aw/specs/safe-outputs-specification/) +- **[Safe Outputs Spec]** Safe Outputs System Specification, GitHub Agentic Workflows. [/gh-aw/scratchpad/safe-outputs-specification/](/gh-aw/scratchpad/safe-outputs-specification/) - **[GitHub MCP Server]** GitHub MCP Server Documentation. [/gh-aw/skills/github-mcp-server/](/gh-aw/skills/github-mcp-server/) diff --git a/specs/go-type-patterns.md b/scratchpad/go-type-patterns.md similarity index 100% rename from specs/go-type-patterns.md rename to scratchpad/go-type-patterns.md diff --git a/specs/gosec.md b/scratchpad/gosec.md similarity index 100% rename from specs/gosec.md rename to scratchpad/gosec.md diff --git a/specs/labels.md b/scratchpad/labels.md similarity index 100% rename from specs/labels.md rename to scratchpad/labels.md diff --git a/specs/layout.md b/scratchpad/layout.md similarity index 99% rename from specs/layout.md rename to scratchpad/layout.md index 60dc635bef8..bb9de7cd591 100644 --- a/specs/layout.md +++ b/scratchpad/layout.md @@ -156,7 +156,7 @@ Key directories used across the codebase: | `pkg/parser/` | Markdown frontmatter parsing | Schema validation and parsing | | `actions/setup/js/` | JavaScript runtime code | CommonJS modules for GitHub Actions | | `actions/setup/sh/` | Shell script code | Bash scripts for GitHub Actions | -| `specs/` | Specification documents | Documentation and specs directory | +| `scratchpad/` | Specification documents | Documentation and specs directory | ## Constants and Patterns from Go Code diff --git a/specs/mcp_logs_guardrails.md b/scratchpad/mcp_logs_guardrails.md similarity index 100% rename from specs/mcp_logs_guardrails.md rename to scratchpad/mcp_logs_guardrails.md diff --git a/specs/mdflow-comparison.md b/scratchpad/mdflow-comparison.md similarity index 100% rename from specs/mdflow-comparison.md rename to scratchpad/mdflow-comparison.md diff --git a/specs/mdflow.md b/scratchpad/mdflow.md similarity index 99% rename from specs/mdflow.md rename to scratchpad/mdflow.md index 478db0291d8..5e4a56517a0 100644 --- a/specs/mdflow.md +++ b/scratchpad/mdflow.md @@ -1173,7 +1173,7 @@ CI/CD Execution (gh-aw): **Documentation**: - Full documentation site (Astro Starlight) - Video tutorials and slides -- Comprehensive specifications (specs/ directory) +- Comprehensive specifications (scratchpad/ directory) - Enterprise security guidelines --- diff --git a/specs/metrics-glossary.md b/scratchpad/metrics-glossary.md similarity index 100% rename from specs/metrics-glossary.md rename to scratchpad/metrics-glossary.md diff --git a/specs/mods/README.md b/scratchpad/mods/README.md similarity index 100% rename from specs/mods/README.md rename to scratchpad/mods/README.md diff --git a/specs/mods/jsonschema-go.md b/scratchpad/mods/jsonschema-go.md similarity index 100% rename from specs/mods/jsonschema-go.md rename to scratchpad/mods/jsonschema-go.md diff --git a/specs/oh-my-code.md b/scratchpad/oh-my-code.md similarity index 99% rename from specs/oh-my-code.md rename to scratchpad/oh-my-code.md index f926d05db3b..7da0e64ab50 100644 --- a/specs/oh-my-code.md +++ b/scratchpad/oh-my-code.md @@ -1669,8 +1669,8 @@ The future likely involves both approaches: developers using AI agents locally f - **Discord**: #continuous-ai in GitHub Next Discord ### Related Comparisons -- **mdflow Comparison**: specs/mdflow-comparison.md -- **Gastown Concepts**: specs/gastown.md +- **mdflow Comparison**: scratchpad/mdflow-comparison.md +- **Gastown Concepts**: scratchpad/gastown.md - **GitHub Actions Security**: https://docs.github.com/en/actions/reference/security/secure-use --- diff --git a/specs/repo-memory.md b/scratchpad/repo-memory.md similarity index 100% rename from specs/repo-memory.md rename to scratchpad/repo-memory.md diff --git a/specs/safe-output-environment-variables.md b/scratchpad/safe-output-environment-variables.md similarity index 100% rename from specs/safe-output-environment-variables.md rename to scratchpad/safe-output-environment-variables.md diff --git a/specs/safe-output-handlers-refactoring.md b/scratchpad/safe-output-handlers-refactoring.md similarity index 100% rename from specs/safe-output-handlers-refactoring.md rename to scratchpad/safe-output-handlers-refactoring.md diff --git a/specs/safe-output-messages.md b/scratchpad/safe-output-messages.md similarity index 100% rename from specs/safe-output-messages.md rename to scratchpad/safe-output-messages.md diff --git a/specs/safe-outputs-specification.md b/scratchpad/safe-outputs-specification.md similarity index 99% rename from specs/safe-outputs-specification.md rename to scratchpad/safe-outputs-specification.md index 5fa87c43033..8dede6b883a 100644 --- a/specs/safe-outputs-specification.md +++ b/scratchpad/safe-outputs-specification.md @@ -9,7 +9,7 @@ sidebar: **Version**: 1.0.0 **Status**: Recommendation -**Latest Version**: https://githubnext.github.io/gh-aw/specs/safe-outputs-specification/ +**Latest Version**: https://githubnext.github.io/gh-aw/scratchpad/safe-outputs-specification/ **Editors**: GitHub Next Team --- diff --git a/specs/schema-validation.md b/scratchpad/schema-validation.md similarity index 100% rename from specs/schema-validation.md rename to scratchpad/schema-validation.md diff --git a/specs/security_review.md b/scratchpad/security_review.md similarity index 100% rename from specs/security_review.md rename to scratchpad/security_review.md diff --git a/specs/string-sanitization-normalization.md b/scratchpad/string-sanitization-normalization.md similarity index 100% rename from specs/string-sanitization-normalization.md rename to scratchpad/string-sanitization-normalization.md diff --git a/specs/styles-guide.md b/scratchpad/styles-guide.md similarity index 100% rename from specs/styles-guide.md rename to scratchpad/styles-guide.md diff --git a/specs/template-injection-prevention.md b/scratchpad/template-injection-prevention.md similarity index 100% rename from specs/template-injection-prevention.md rename to scratchpad/template-injection-prevention.md diff --git a/specs/testing.md b/scratchpad/testing.md similarity index 100% rename from specs/testing.md rename to scratchpad/testing.md diff --git a/specs/token-budget-guidelines.md b/scratchpad/token-budget-guidelines.md similarity index 100% rename from specs/token-budget-guidelines.md rename to scratchpad/token-budget-guidelines.md diff --git a/specs/ubuntulatest.md b/scratchpad/ubuntulatest.md similarity index 100% rename from specs/ubuntulatest.md rename to scratchpad/ubuntulatest.md diff --git a/specs/validation-architecture.md b/scratchpad/validation-architecture.md similarity index 100% rename from specs/validation-architecture.md rename to scratchpad/validation-architecture.md diff --git a/specs/validation-refactoring.md b/scratchpad/validation-refactoring.md similarity index 98% rename from specs/validation-refactoring.md rename to scratchpad/validation-refactoring.md index dcfef2916d5..2e1c020d3a5 100644 --- a/specs/validation-refactoring.md +++ b/scratchpad/validation-refactoring.md @@ -115,7 +115,7 @@ For each domain, create a new file following naming convention: // // For related validation, see {related_files}. // For general validation, see validation.go. -// For detailed documentation, see specs/validation-architecture.md +// For detailed documentation, see scratchpad/validation-architecture.md package workflow import ( @@ -355,7 +355,7 @@ When refactoring a large validation file: - **Implementation**: `pkg/workflow/bundler_*_validation.go` - **Tests**: `pkg/workflow/bundler_*_validation_test.go` -- **Architecture**: `specs/validation-architecture.md` +- **Architecture**: `scratchpad/validation-architecture.md` - **Guidelines**: `AGENTS.md` (Validation Architecture section) --- diff --git a/specs/visual-regression-testing.md b/scratchpad/visual-regression-testing.md similarity index 100% rename from specs/visual-regression-testing.md rename to scratchpad/visual-regression-testing.md diff --git a/specs/workflow-refactoring-patterns.md b/scratchpad/workflow-refactoring-patterns.md similarity index 100% rename from specs/workflow-refactoring-patterns.md rename to scratchpad/workflow-refactoring-patterns.md diff --git a/specs/yaml-version-gotchas.md b/scratchpad/yaml-version-gotchas.md similarity index 100% rename from specs/yaml-version-gotchas.md rename to scratchpad/yaml-version-gotchas.md diff --git a/scripts/check-file-sizes.sh b/scripts/check-file-sizes.sh index 4972025cc33..4f6659c57a7 100755 --- a/scripts/check-file-sizes.sh +++ b/scripts/check-file-sizes.sh @@ -74,13 +74,13 @@ else echo "Files exceeding ${WARN_THRESHOLD} functions should be evaluated for splitting." echo "However, domain complexity may justify larger files." echo "" - echo "See specs/code-organization.md for file size guidelines and justified large files." + echo "See scratchpad/code-organization.md for file size guidelines and justified large files." fi echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "Note: This is an informational check only. Large files may be justified" -echo "by domain complexity. See specs/code-organization.md for guidelines." +echo "by domain complexity. See scratchpad/code-organization.md for guidelines." # Always exit 0 (non-blocking) exit 0 diff --git a/skills/developer/SKILL.md b/skills/developer/SKILL.md index 462f1832225..c364d0c8a3b 100644 --- a/skills/developer/SKILL.md +++ b/skills/developer/SKILL.md @@ -700,7 +700,7 @@ Template injection vulnerabilities were identified and fixed in: - `copilot-session-insights.md` - Step output passed through environment variable - Pattern: Move template expressions from bash scripts to environment variable assignments -See `specs/template-injection-prevention.md` for detailed analysis and fix documentation. +See `scratchpad/template-injection-prevention.md` for detailed analysis and fix documentation. #### Secure Pattern: Sanitized Context (gh-aw specific) @@ -1843,7 +1843,7 @@ Special consideration for strict mode changes: ## Go Module Summaries -The `specs/mods/` directory contains AI-generated summaries of Go module usage patterns in the gh-aw repository, created by the Go Fan workflow. +The `scratchpad/mods/` directory contains AI-generated summaries of Go module usage patterns in the gh-aw repository, created by the Go Fan workflow. ### Purpose @@ -1875,7 +1875,7 @@ graph LR C --> D[Analyze Module Usage] D --> E[Research GitHub Repo] E --> F[Generate Summary] - F --> G[Write to specs/mods/] + F --> G[Write to scratchpad/mods/] G --> H[Update Cache Memory] H --> I[Commit & Push] ``` @@ -1888,7 +1888,7 @@ graph LR When working with Go modules in the codebase: -1. **Check existing summaries** in `specs/mods/` for module-specific patterns and best practices +1. **Check existing summaries** in `scratchpad/mods/` for module-specific patterns and best practices 2. **Reference improvement opportunities** when upgrading or refactoring module usage 3. **Consult API documentation links** provided in the summaries for authoritative reference 4. **Update summaries manually** if significant changes are made to module usage patterns (the workflow will refresh on its next run) diff --git a/skills/messages/SKILL.md b/skills/messages/SKILL.md index d2e4fa698fe..2f8f88daba0 100644 --- a/skills/messages/SKILL.md +++ b/skills/messages/SKILL.md @@ -253,7 +253,7 @@ const message = getMyNewMessage({ ## Step 10: Update Documentation -Update `specs/safe-output-messages.md`: +Update `scratchpad/safe-output-messages.md`: 1. Add the new message to the "Message Categories" section 2. Document placeholders and usage 3. Add examples @@ -279,7 +279,7 @@ Before committing: - [ ] Go embed directive added in `js.go` - [ ] Added to `GetJavaScriptSources()` map - [ ] Consumer scripts updated to use minimal imports -- [ ] Documentation updated in `specs/safe-output-messages.md` +- [ ] Documentation updated in `scratchpad/safe-output-messages.md` - [ ] Tests pass: `make test-js` - [ ] Build succeeds: `make build` - [ ] Linting passes: `make lint` @@ -296,7 +296,7 @@ Before committing: | `pkg/workflow/js/messages_core.cjs` | Core utilities | Update typedef | | `pkg/workflow/js/messages.cjs` | Barrel file | Add re-export | | `pkg/workflow/js.go` | Go embeddings | Add embed directive | -| `specs/safe-output-messages.md` | Documentation | Document new message | +| `scratchpad/safe-output-messages.md` | Documentation | Document new message | ## Example: Adding `close-older-discussion` Message