Skip to content

Commit 5d0029d

Browse files
authored
Merge pull request #77 from githubnext/install-crane
Install Crane
2 parents aa99aa0 + 0161ecd commit 5d0029d

11 files changed

Lines changed: 3866 additions & 43 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
name: Crane Migration
3+
about: Create a new Crane code-migration
4+
title: ''
5+
labels: crane-migration
6+
---
7+
8+
<!-- CRANE:ISSUE-MIGRATION -->
9+
<!-- This issue defines a Crane migration. The format is identical to migration.md files. -->
10+
<!-- Crane will discover this issue by its label and run iterations automatically. -->
11+
<!-- After each run, a status comment will be posted/updated with links and results. -->
12+
13+
---
14+
schedule: every 6h
15+
strategy: auto # in-place | greenfield | auto
16+
source-language: REPLACE # e.g. python, ruby, perl
17+
target-languages: [REPLACE] # e.g. [typescript], [typescript, go], [kotlin]
18+
target-metric: 1.0 # migration is complete when health score reaches this
19+
metric_direction: higher
20+
---
21+
22+
# Migration Name
23+
24+
## Source
25+
26+
<!-- What you're migrating from. Be specific about language version, runtime, and paths. -->
27+
28+
- **Language**: REPLACE (e.g. Python 3.11)
29+
- **Runtime**: REPLACE (e.g. CPython)
30+
- **Paths**:
31+
- `REPLACE/path/to/source` -- (what lives here)
32+
- `REPLACE/path/to/source-tests` -- existing test suite
33+
34+
## Target
35+
36+
<!-- What you're migrating to. Multiple target languages are allowed (e.g. TypeScript with a Go core for hot paths). -->
37+
38+
- **Languages**: REPLACE (e.g. TypeScript, Go)
39+
- **Runtime**: REPLACE (e.g. Node 22 / Bun 1.x)
40+
- **Paths**:
41+
- `REPLACE/path/to/target` -- (what should live here)
42+
- **Bridge** *(if polyglot)*: REPLACE (e.g. "Go core compiled to WASM, called from TypeScript through a thin wrapper")
43+
44+
## Strategy
45+
46+
<!-- Choose one and justify, or leave as `auto` in the frontmatter and let Crane decide on its first iteration. -->
47+
48+
REPLACE -- explain why this strategy fits.
49+
50+
- `in-place` (strangler-fig): system stays live throughout. Each milestone ports one unit and re-routes callers. Preferred for production code or anything with external consumers.
51+
- `greenfield`: target built in parallel; cutover after parity is total. Best for small, self-contained sources.
52+
- `auto`: let Crane pick on first iteration.
53+
54+
## Verification
55+
56+
<!-- A command that prints JSON containing `migration_score` (0.0-1.0). Recommended: migration_score = correctness_gate x progress -->
57+
58+
```bash
59+
REPLACE_WITH_YOUR_VERIFICATION_COMMAND
60+
```
61+
62+
The metric is `migration_score` (0.0-1.0). **Higher is better.** Optional companion fields: `progress`, `parity_passing`, `parity_total`, `source_tests_passing`, `target_tests_passing`, `perf_ratio`.
63+
64+
## Out of scope
65+
66+
<!-- Files Crane must NOT touch. -->
67+
68+
- (list paths that are off-limits even if they share a parent with source/target paths)

.github/agents/agentic-workflows.agent.md

Lines changed: 74 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,17 @@ This is a **dispatcher agent** that routes your request to the appropriate speci
1515
- **Updating existing workflows**: Routes to `update` prompt
1616
- **Debugging workflows**: Routes to `debug` prompt
1717
- **Upgrading workflows**: Routes to `upgrade-agentic-workflows` prompt
18-
- **Creating report-generating workflows**: Routes to `report` prompt consult this whenever the workflow posts status updates, audits, analyses, or any structured output as issues, discussions, or comments
18+
- **Creating report-generating workflows**: Routes to `report` prompt -- consult this whenever the workflow posts status updates, audits, analyses, or any structured output as issues, discussions, or comments
1919
- **Creating shared components**: Routes to `create-shared-agentic-workflow` prompt
20-
- **Fixing Dependabot PRs**: Routes to `dependabot` prompt — use this when Dependabot opens PRs that modify generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`). Never merge those PRs directly; instead update the source `.md` files and rerun `gh aw compile --dependabot` to bundle all fixes
21-
- **Analyzing test coverage**: Routes to `test-coverage` prompt — consult this whenever the workflow reads, analyzes, or reports on test coverage data from PRs or CI runs
20+
- **Fixing Dependabot PRs**: Routes to `dependabot` prompt -- use this when Dependabot opens PRs that modify generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`). Never merge those PRs directly; instead update the source `.md` files and rerun `gh aw compile --dependabot` to bundle all fixes
21+
- **Analyzing test coverage**: Routes to `test-coverage` prompt -- consult this whenever the workflow reads, analyzes, or reports on test coverage data from PRs or CI runs
22+
- **Rendering ASCII charts in markdown**: Routes to `asciicharts` guide -- consult this whenever the workflow needs compact charts that render reliably in GitHub issues, comments, or discussions
23+
- **CLI commands and triggering workflows**: Routes to `cli-commands` guide -- consult this whenever the user asks how to run, compile, debug, or manage workflows from the command line, or when they need the MCP tool equivalent of a `gh aw` command
24+
- **Reducing token consumption / cost optimization**: Routes to `token-optimization` guide -- consult this whenever the user asks how to reduce token usage, lower costs, speed up workflows, or measure the impact of prompt changes with experiments
25+
- **Choosing workflow architectures and design patterns**: Routes to `patterns` guide -- consult this whenever the user asks for strategy, architecture, operating models, or pattern selection for agentic workflows
26+
27+
> [!IMPORTANT]
28+
> For architecture/pattern-selection requests, load `https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/patterns.md` first.
2229
2330
Workflows may optionally include:
2431

@@ -30,7 +37,7 @@ Workflows may optionally include:
3037
- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
3138
- Workflow lock files: `.github/workflows/*.lock.yml`
3239
- Shared components: `.github/workflows/shared/*.md`
33-
- Configuration: https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflows.md
40+
- Configuration: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/github-agentic-workflows.md
3441

3542
## Problems This Solves
3643

@@ -52,7 +59,7 @@ When you interact with this agent, it will:
5259
### Create New Workflow
5360
**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet
5461

55-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-agentic-workflow.md
62+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/create-agentic-workflow.md
5663

5764
**Use cases**:
5865
- "Create a workflow that triages issues"
@@ -62,7 +69,7 @@ When you interact with this agent, it will:
6269
### Update Existing Workflow
6370
**Load when**: User wants to modify, improve, or refactor an existing workflow
6471

65-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/update-agentic-workflow.md
72+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/update-agentic-workflow.md
6673

6774
**Use cases**:
6875
- "Add web-fetch tool to the issue-classifier workflow"
@@ -72,7 +79,7 @@ When you interact with this agent, it will:
7279
### Debug Workflow
7380
**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors
7481

75-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/debug-agentic-workflow.md
82+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/debug-agentic-workflow.md
7683

7784
**Use cases**:
7885
- "Why is this workflow failing?"
@@ -82,17 +89,17 @@ When you interact with this agent, it will:
8289
### Upgrade Agentic Workflows
8390
**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations
8491

85-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/upgrade-agentic-workflows.md
92+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/upgrade-agentic-workflows.md
8693

8794
**Use cases**:
8895
- "Upgrade all workflows to the latest version"
8996
- "Fix deprecated fields in workflows"
9097
- "Apply breaking changes from the new release"
9198

9299
### Create a Report-Generating Workflow
93-
**Load when**: The workflow being created or updated produces reports recurring status updates, audit summaries, analyses, or any structured output posted as a GitHub issue, discussion, or comment
100+
**Load when**: The workflow being created or updated produces reports -- recurring status updates, audit summaries, analyses, or any structured output posted as a GitHub issue, discussion, or comment
94101

95-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/report.md
102+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/report.md
96103

97104
**Use cases**:
98105
- "Create a weekly CI health report"
@@ -102,7 +109,7 @@ When you interact with this agent, it will:
102109
### Create Shared Agentic Workflow
103110
**Load when**: User wants to create a reusable workflow component or wrap an MCP server
104111

105-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/create-shared-agentic-workflow.md
112+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/create-shared-agentic-workflow.md
106113

107114
**Use cases**:
108115
- "Create a shared component for Notion integration"
@@ -112,23 +119,68 @@ When you interact with this agent, it will:
112119
### Fix Dependabot PRs
113120
**Load when**: User needs to close or fix open Dependabot PRs that update dependencies in generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`)
114121

115-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/dependabot.md
122+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/dependabot.md
116123

117124
**Use cases**:
118125
- "Fix the open Dependabot PRs for npm dependencies"
119126
- "Bundle and close the Dependabot PRs for workflow dependencies"
120127
- "Update @playwright/test to fix the Dependabot PR"
121128

122129
### Analyze Test Coverage
123-
**Load when**: The workflow reads, analyzes, or reports test coverage whether triggered by a PR, a schedule, or a slash command. Always consult this prompt before designing the coverage data strategy.
130+
**Load when**: The workflow reads, analyzes, or reports test coverage -- whether triggered by a PR, a schedule, or a slash command. Always consult this prompt before designing the coverage data strategy.
124131

125-
**Prompt file**: https://github.com/github/gh-aw/blob/main/.github/aw/test-coverage.md
132+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/test-coverage.md
126133

127134
**Use cases**:
128135
- "Create a workflow that comments coverage on PRs"
129136
- "Analyze coverage trends over time"
130137
- "Add a coverage gate that blocks PRs below a threshold"
131138

139+
### Render ASCII Charts in Markdown
140+
**Load when**: The workflow needs in-markdown charts (sparklines, bars, table+trend views) that must align cleanly and render reliably across GitHub surfaces, including mobile.
141+
142+
**Reference file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/asciicharts.md
143+
144+
**Use cases**:
145+
- "Show a compact trend chart in an issue comment"
146+
- "Render a dashboard table with sparkline trends"
147+
- "Generate aligned ASCII bars for service metrics"
148+
149+
### CLI Commands Reference
150+
**Load when**: The user asks how to run, compile, debug, or manage workflows from the command line; needs the MCP tool equivalent of a `gh aw` command; or is in a restricted environment (e.g., Copilot Cloud) without direct CLI access.
151+
152+
**Reference file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/cli-commands.md
153+
154+
**Use cases**:
155+
- "How do I trigger workflow X on the main branch?"
156+
- "What's the MCP equivalent of `gh aw logs`?"
157+
- "I'm in Copilot Cloud -- how do I compile a workflow?"
158+
- "Show me all available gh aw commands"
159+
160+
### Token Consumption Optimization
161+
**Load when**: The user asks how to reduce token usage, lower workflow costs, make a workflow faster or cheaper, or measure the impact of prompt or configuration changes.
162+
163+
**Reference file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/token-optimization.md
164+
165+
**Use cases**:
166+
- "How do I reduce the token cost of this workflow?"
167+
- "My workflow is too expensive -- how do I optimize it?"
168+
- "How do I compare token usage between two runs?"
169+
- "Should I use gh-proxy or the MCP server?"
170+
- "How do I use sub-agents to reduce costs?"
171+
- "How do I measure the impact of a prompt change?"
172+
173+
### Workflow Pattern Selection
174+
**Load when**: The user asks for architecture, strategy, operating model selection, or pattern recommendations for building agentic workflows.
175+
176+
**Reference file**: https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/patterns.md
177+
178+
**Use cases**:
179+
- "Which pattern should I use for multi-repo rollout?"
180+
- "How should I structure this workflow architecture?"
181+
- "What pattern fits slash-command triage?"
182+
- "Should this be DispatchOps or DailyOps?"
183+
132184
## Instructions
133185

134186
When a user interacts with you:
@@ -147,6 +199,10 @@ gh aw init
147199
# Generate the lock file for a workflow
148200
gh aw compile [workflow-name]
149201

202+
# Trigger a workflow on demand (preferred over gh workflow run)
203+
gh aw run <workflow-name> # interactive input collection
204+
gh aw run <workflow-name> --ref main # run on a specific branch
205+
150206
# Debug workflow runs
151207
gh aw logs [workflow-name]
152208
gh aw audit <run-id>
@@ -169,9 +225,12 @@ gh aw compile --validate
169225

170226
## Important Notes
171227

172-
- Always reference the instructions file at https://github.com/github/gh-aw/blob/main/.github/aw/github-agentic-workflows.md for complete documentation
228+
- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/github-agentic-workflows.md for complete documentation
173229
- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
174230
- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
175231
- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
176232
- Follow security best practices: minimal permissions, explicit network access, no template injection
233+
- **Network configuration**: Use ecosystem identifiers (`node`, `python`, `go`, etc.) or explicit FQDNs in `network.allowed`. Bare shorthands like `npm` or `pypi` are **not** valid. See https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/network.md for the full list of valid ecosystem identifiers and domain patterns.
177234
- **Single-file output**: When creating a workflow, produce exactly **one** workflow `.md` file. Do not create separate documentation files (architecture docs, runbooks, usage guides, etc.). If documentation is needed, add a brief `## Usage` section inside the workflow file itself.
235+
- **Triggering runs**: Always use `gh aw run <workflow-name>` to trigger a workflow on demand -- not `gh workflow run <file>.lock.yml`. `gh aw run` handles workflow resolution by short name, input parsing and validation, and correct run-tracking for agentic workflows. Use `--ref <branch>` to run on a specific branch.
236+
- **CLI commands reference**: For a complete guide on all `gh aw` commands and their MCP tool equivalents (for restricted environments), see https://github.com/github/gh-aw/blob/v0.74.4/.github/aw/cli-commands.md

.github/aw/actions-lock.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@
3030
"version": "v7",
3131
"sha": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a"
3232
},
33-
"github/gh-aw-actions/setup-cli@v0.71.5": {
34-
"repo": "github/gh-aw-actions/setup-cli",
35-
"version": "v0.71.5",
36-
"sha": "b8068426813005612b960b5ab0b8bd2c27142323"
37-
},
38-
"github/gh-aw-actions/setup@v0.71.5": {
33+
"github/gh-aw-actions/setup@v0.74.4": {
3934
"repo": "github/gh-aw-actions/setup",
40-
"version": "v0.71.5",
41-
"sha": "b8068426813005612b960b5ab0b8bd2c27142323"
35+
"version": "v0.74.4",
36+
"sha": "d3abfe96a194bce3a523ed2093ddedd5704cdf62"
37+
},
38+
"github/gh-aw-actions/setup-cli@v0.74.4": {
39+
"repo": "github/gh-aw-actions/setup-cli",
40+
"version": "v0.74.4",
41+
"sha": "d3abfe96a194bce3a523ed2093ddedd5704cdf62"
4242
},
4343
"github/gh-aw/actions/setup@v0.50.6": {
4444
"repo": "github/gh-aw/actions/setup",

.github/codeql/codeql-config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: "CodeQL configuration"
2+
3+
paths-ignore:
4+
# Auto-generated lock files from gh-aw compile
5+
- ".github/workflows/*.lock.yml"

.github/mcp.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"mcpServers": {
3+
"github-agentic-workflows": {
4+
"command": "gh",
5+
"args": [
6+
"aw",
7+
"mcp-server"
8+
]
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)