Skip to content

Commit 2486f1c

Browse files
authored
Merge pull request #2 from githubnext/copilot/install-autoloop-and-setup
Install Autoloop and add initial goal-oriented LinearRegression port program
2 parents 638db33 + 2d79993 commit 2486f1c

11 files changed

Lines changed: 3783 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
schedule: every 6h
3+
target-metric: 1.0
4+
---
5+
6+
# LinearRegression Compatibility Milestone
7+
8+
## Goal
9+
10+
This is a **goal-oriented** program.
11+
12+
Port a first scikit-learn estimator (`LinearRegression`) to TypeScript with a `githubnext/tsessebe`-style dataframe adapter interface (typed column/series/table operations similar to pandas-style tabular workflows), and add parity-oriented tests/fixtures for it.
13+
14+
The metric is `linear_regression_port_progress`. **Higher is better.**
15+
16+
## Target
17+
18+
Only modify these files:
19+
- `src/sklearn/linear_model/**` — TypeScript port of LinearRegression and related exports
20+
- `src/sklearn/dataframe/**` — dataframe utilities/adapters shaped for `tsessebe`
21+
- `tests/compat/linear_model/**` — parity tests and fixtures for LinearRegression behavior
22+
- `README.md` — short status note for this milestone
23+
24+
Do NOT modify:
25+
- `.github/workflows/**`
26+
- `.autoloop/**` (except this program file)
27+
- Dependency lockfiles unless required by test execution
28+
29+
## Evaluation
30+
31+
```bash
32+
python3 - <<'PY'
33+
import json
34+
from pathlib import Path
35+
36+
required = [
37+
Path('src/sklearn/linear_model/LinearRegression.ts'),
38+
Path('src/sklearn/linear_model/index.ts'),
39+
Path('src/sklearn/dataframe/tsessebeAdapter.ts'),
40+
Path('tests/compat/linear_model/linear_regression.compat.test.ts'),
41+
Path('tests/compat/linear_model/fixtures/linear_regression.json'),
42+
]
43+
44+
score = sum(1 for p in required if p.exists())
45+
metric = round(score / len(required), 4)
46+
print(json.dumps({
47+
'linear_regression_port_progress': metric,
48+
'completed_artifacts': score,
49+
'required_artifacts': len(required)
50+
}))
51+
PY
52+
```
53+
54+
The metric is `linear_regression_port_progress` from the JSON output. **Higher is better.**

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.github/workflows/*.lock.yml linguist-generated=true merge=ours
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: Autoloop Program
3+
about: Create a new Autoloop optimization program
4+
title: ''
5+
labels: autoloop-program
6+
---
7+
8+
<!-- AUTOLOOP:ISSUE-PROGRAM -->
9+
<!-- This issue defines an Autoloop program. The format is identical to program.md files. -->
10+
<!-- Autoloop 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+
# target-metric: 0.95 ← uncomment and set to make this a goal-oriented program that stops when reached
16+
---
17+
18+
# Program Name
19+
20+
## Goal
21+
22+
<!-- Describe what you want to optimize. Be specific about what 'better' means. -->
23+
<!-- Choose one of the following program types: -->
24+
<!-- • Goal-oriented: Has a finish line. Set target-metric above and describe the target here. -->
25+
<!-- Example: "Increase test coverage to at least 95%." -->
26+
<!-- • Open-ended: Runs forever, always seeking improvement. Leave target-metric commented out. -->
27+
<!-- Example: "Continuously improve algorithm performance." -->
28+
29+
REPLACE THIS with your optimization goal.
30+
31+
## Target
32+
33+
<!-- List files Autoloop may modify. Everything else is off-limits. -->
34+
35+
Only modify these files:
36+
- `REPLACE_WITH_FILE` -- (describe what this file does)
37+
38+
Do NOT modify:
39+
- (list files that must not be touched)
40+
41+
## Evaluation
42+
43+
<!-- Provide a command and the metric to extract. -->
44+
45+
```bash
46+
REPLACE_WITH_YOUR_EVALUATION_COMMAND
47+
```
48+
49+
The metric is `REPLACE_WITH_METRIC_NAME`. **Lower/Higher is better.** (pick one)
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
---
2+
description: GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
3+
disable-model-invocation: true
4+
---
5+
6+
# GitHub Agentic Workflows Agent
7+
8+
This agent helps you work with **GitHub Agentic Workflows (gh-aw)**, a CLI extension for creating AI-powered workflows in natural language using markdown files.
9+
10+
## What This Agent Does
11+
12+
This is a **dispatcher agent** that routes your request to the appropriate specialized prompt based on your task:
13+
14+
- **Creating new workflows**: Routes to `create` prompt
15+
- **Updating existing workflows**: Routes to `update` prompt
16+
- **Debugging workflows**: Routes to `debug` prompt
17+
- **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
19+
- **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
22+
- **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
23+
24+
Workflows may optionally include:
25+
26+
- **Project tracking / monitoring** (GitHub Projects updates, status reporting)
27+
- **Orchestration / coordination** (one workflow assigning agents or dispatching and coordinating other workflows)
28+
29+
## Files This Applies To
30+
31+
- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
32+
- Workflow lock files: `.github/workflows/*.lock.yml`
33+
- Shared components: `.github/workflows/shared/*.md`
34+
- Configuration: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/github-agentic-workflows.md
35+
36+
## Problems This Solves
37+
38+
- **Workflow Creation**: Design secure, validated agentic workflows with proper triggers, tools, and permissions
39+
- **Workflow Debugging**: Analyze logs, identify missing tools, investigate failures, and fix configuration issues
40+
- **Version Upgrades**: Migrate workflows to new gh-aw versions, apply codemods, fix breaking changes
41+
- **Component Design**: Create reusable shared workflow components that wrap MCP servers
42+
43+
## How to Use
44+
45+
When you interact with this agent, it will:
46+
47+
1. **Understand your intent** - Determine what kind of task you're trying to accomplish
48+
2. **Route to the right prompt** - Load the specialized prompt file for your task
49+
3. **Execute the task** - Follow the detailed instructions in the loaded prompt
50+
51+
## Available Prompts
52+
53+
### Create New Workflow
54+
**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet
55+
56+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/create-agentic-workflow.md
57+
58+
**Use cases**:
59+
- "Create a workflow that triages issues"
60+
- "I need a workflow to label pull requests"
61+
- "Design a weekly research automation"
62+
63+
### Update Existing Workflow
64+
**Load when**: User wants to modify, improve, or refactor an existing workflow
65+
66+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/update-agentic-workflow.md
67+
68+
**Use cases**:
69+
- "Add web-fetch tool to the issue-classifier workflow"
70+
- "Update the PR reviewer to use discussions instead of issues"
71+
- "Improve the prompt for the weekly-research workflow"
72+
73+
### Debug Workflow
74+
**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors
75+
76+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/debug-agentic-workflow.md
77+
78+
**Use cases**:
79+
- "Why is this workflow failing?"
80+
- "Analyze the logs for workflow X"
81+
- "Investigate missing tool calls in run #12345"
82+
83+
### Upgrade Agentic Workflows
84+
**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations
85+
86+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/upgrade-agentic-workflows.md
87+
88+
**Use cases**:
89+
- "Upgrade all workflows to the latest version"
90+
- "Fix deprecated fields in workflows"
91+
- "Apply breaking changes from the new release"
92+
93+
### Create a Report-Generating Workflow
94+
**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
95+
96+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/report.md
97+
98+
**Use cases**:
99+
- "Create a weekly CI health report"
100+
- "Post a daily security audit to Discussions"
101+
- "Add a status update comment to open PRs"
102+
103+
### Create Shared Agentic Workflow
104+
**Load when**: User wants to create a reusable workflow component or wrap an MCP server
105+
106+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/create-shared-agentic-workflow.md
107+
108+
**Use cases**:
109+
- "Create a shared component for Notion integration"
110+
- "Wrap the Slack MCP server as a reusable component"
111+
- "Design a shared workflow for database queries"
112+
113+
### Fix Dependabot PRs
114+
**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`)
115+
116+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/dependabot.md
117+
118+
**Use cases**:
119+
- "Fix the open Dependabot PRs for npm dependencies"
120+
- "Bundle and close the Dependabot PRs for workflow dependencies"
121+
- "Update @playwright/test to fix the Dependabot PR"
122+
123+
### Analyze Test Coverage
124+
**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.
125+
126+
**Prompt file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/test-coverage.md
127+
128+
**Use cases**:
129+
- "Create a workflow that comments coverage on PRs"
130+
- "Analyze coverage trends over time"
131+
- "Add a coverage gate that blocks PRs below a threshold"
132+
133+
### CLI Commands Reference
134+
**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.
135+
136+
**Reference file**: https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/cli-commands.md
137+
138+
**Use cases**:
139+
- "How do I trigger workflow X on the main branch?"
140+
- "What's the MCP equivalent of `gh aw logs`?"
141+
- "I'm in Copilot Cloud — how do I compile a workflow?"
142+
- "Show me all available gh aw commands"
143+
144+
## Instructions
145+
146+
When a user interacts with you:
147+
148+
1. **Identify the task type** from the user's request
149+
2. **Load the appropriate prompt** from the GitHub repository URLs listed above
150+
3. **Follow the loaded prompt's instructions** exactly
151+
4. **If uncertain**, ask clarifying questions to determine the right prompt
152+
153+
## Quick Reference
154+
155+
```bash
156+
# Initialize repository for agentic workflows
157+
gh aw init
158+
159+
# Generate the lock file for a workflow
160+
gh aw compile [workflow-name]
161+
162+
# Trigger a workflow on demand (preferred over gh workflow run)
163+
gh aw run <workflow-name> # interactive input collection
164+
gh aw run <workflow-name> --ref main # run on a specific branch
165+
166+
# Debug workflow runs
167+
gh aw logs [workflow-name]
168+
gh aw audit <run-id>
169+
170+
# Upgrade workflows
171+
gh aw fix --write
172+
gh aw compile --validate
173+
```
174+
175+
## Key Features of gh-aw
176+
177+
- **Natural Language Workflows**: Write workflows in markdown with YAML frontmatter
178+
- **AI Engine Support**: Copilot, Claude, Codex, or custom engines
179+
- **MCP Server Integration**: Connect to Model Context Protocol servers for tools
180+
- **Safe Outputs**: Structured communication between AI and GitHub API
181+
- **Strict Mode**: Security-first validation and sandboxing
182+
- **Shared Components**: Reusable workflow building blocks
183+
- **Repo Memory**: Persistent git-backed storage for agents
184+
- **Sandboxed Execution**: All workflows run in the Agent Workflow Firewall (AWF) sandbox, enabling full `bash` and `edit` tools by default
185+
186+
## Important Notes
187+
188+
- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.72.1/.github/aw/github-agentic-workflows.md for complete documentation
189+
- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
190+
- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
191+
- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
192+
- Follow security best practices: minimal permissions, explicit network access, no template injection
193+
- **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.72.1/.github/aw/network.md for the full list of valid ecosystem identifiers and domain patterns.
194+
- **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.
195+
- **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.
196+
- **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.72.1/.github/aw/cli-commands.md

.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)