Skip to content

Commit e44cc37

Browse files
authored
Merge pull request #3 from githubnext/terse-readme-install
Tighten Goal README and creation flow
2 parents e13433a + efc7ba4 commit e44cc37

5 files changed

Lines changed: 359 additions & 181 deletions

File tree

.github/ISSUE_TEMPLATE/goal.md

Lines changed: 0 additions & 54 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/goal.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
name: Goal
2+
description: Create a verifiable Goal workflow issue
3+
title: "[Goal] "
4+
labels:
5+
- goal
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Use this form for one coherent Goal workflow objective with a clear stopping condition.
11+
12+
A good goal is bigger than one prompt but smaller than an open-ended backlog. It should tell the workflow what to do, what not to change, how to prove progress, and when to stop as blocked instead of guessing.
13+
14+
If the goal needs a helper script, fixture, package script, CI target, or other setup before doneness can be judged, ask an agent to use `new-goal.md` first and create the setup PR before submitting this form.
15+
16+
- type: input
17+
id: goal
18+
attributes:
19+
label: Goal
20+
description: State the desired end state in one sentence.
21+
placeholder: "Migrate tests/auth from legacyAuthHelper to createTestSession."
22+
validations:
23+
required: true
24+
25+
- type: textarea
26+
id: completion-contract
27+
attributes:
28+
label: Completion Contract
29+
description: Define exactly when Goal should add `goal-completed` and remove `goal`.
30+
placeholder: |
31+
Goal is complete only when:
32+
- Every test in tests/auth uses createTestSession.
33+
- legacyAuthHelper has no remaining call sites in tests/auth.
34+
- The auth test suite and lint pass.
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: evidence
40+
attributes:
41+
label: Evidence / Verification
42+
description: List the commands, scripts, artifacts, screenshots, logs, or checks that prove the completion contract.
43+
placeholder: |
44+
Run from the repository root:
45+
46+
```bash
47+
set -euo pipefail
48+
npm test -- tests/auth
49+
npm run lint
50+
! rg "legacyAuthHelper" tests/auth
51+
```
52+
53+
Completion requires every command to exit 0.
54+
validations:
55+
required: true
56+
57+
- type: textarea
58+
id: doneness-script
59+
attributes:
60+
label: Optional Inline Doneness Script
61+
description: If a compact script can judge completion, put it here. Prefer an inline script over a setup PR when it only calls existing repo commands.
62+
render: bash
63+
placeholder: |
64+
set -euo pipefail
65+
npm test -- tests/auth
66+
npm run lint
67+
! rg "legacyAuthHelper" tests/auth
68+
validations:
69+
required: false
70+
71+
- type: textarea
72+
id: scope
73+
attributes:
74+
label: Scope and Constraints
75+
description: Say what the workflow may change and what must not change or regress.
76+
placeholder: |
77+
The workflow may change:
78+
- tests/auth/**
79+
- test/helpers/auth.ts
80+
81+
The workflow must not change:
82+
- production authentication behavior
83+
- public API names
84+
- payment provider configuration
85+
validations:
86+
required: true
87+
88+
- type: textarea
89+
id: context
90+
attributes:
91+
label: Context To Read First
92+
description: Point the workflow at the files, docs, issues, PRs, logs, designs, references, or examples it should inspect before changing code.
93+
placeholder: |
94+
- tests/auth/session.test.ts
95+
- test/helpers/auth.ts
96+
- docs/testing/auth.md
97+
- #123
98+
validations:
99+
required: true
100+
101+
- type: textarea
102+
id: iteration-policy
103+
attributes:
104+
label: Iteration Policy
105+
description: Explain how the workflow should choose each next checkpoint and report progress.
106+
placeholder: |
107+
Work in one coherent test group at a time. After each run, report what changed, what was verified, what remains, and whether anything is blocked. Prefer the smallest next checkpoint that can be validated with the evidence above.
108+
validations:
109+
required: true
110+
111+
- type: textarea
112+
id: blocked-stop-condition
113+
attributes:
114+
label: Blocked Stop Condition
115+
description: Define when the workflow should stop substantive work and comment instead of guessing.
116+
placeholder: |
117+
Stop and comment if tests require unavailable secrets, fixtures, product decisions, or external services. The blocked comment should include the exact command output, what is known, and the smallest user action that would unblock the workflow.
118+
validations:
119+
required: true
120+
121+
- type: checkboxes
122+
id: readiness
123+
attributes:
124+
label: Ready To Start
125+
description: Submitting this form applies the `goal` label and may start the workflow.
126+
options:
127+
- label: This goal does not need a setup PR before the workflow starts.
128+
required: true
129+
- label: This is one coherent objective, not a loose backlog.
130+
required: true
131+
- label: The completion contract has observable evidence.
132+
required: true
133+
- label: The constraints are specific enough to prevent accidental broad rewrites.
134+
required: true
135+
- label: The workflow can tell the difference between done, not done yet, and blocked.
136+
required: true

README.md

Lines changed: 15 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,30 @@
11
# Goal
22

3-
Goal turns a GitHub issue into a durable agentic workflow. Open an issue with the
4-
`goal` label, define what "done" means, and the workflow keeps working on the
5-
same branch and pull request until the evidence satisfies the goal. When it is
6-
done, the workflow adds `goal-completed` and removes `goal`.
3+
Goal is an Agentic Workflow for GitHub issues.
74

8-
Goal runs on [GitHub Agentic Workflows](https://github.github.com/gh-aw/setup/quick-start/)
9-
and [GitHub Copilot](https://github.com/features/copilot).
5+
It does something similar to `/goal` in Codex and Claude Code, packaged as a
6+
variant of the Autoloop agentic workflow pattern.
107

11-
## Quick Start
8+
Use an agent to create a good goal issue, and sometimes a small setup PR, before
9+
the workflow starts. Goal then works on that issue across runs using one
10+
long-running branch and PR. Each run comments on the issue. When the goal is
11+
complete, it adds `goal-completed` and removes `goal`.
1212

13-
Paste this into your favorite coding agent session on the repo where you want to
14-
run Goal:
13+
## Install
1514

16-
```text
17-
Install goal using https://github.com/githubnext/goal/blob/main/install.md
18-
```
19-
20-
The agent will install GitHub Agentic Workflows if needed, copy the Goal
21-
workflow, compile it, create labels and issue templates, and help you turn your
22-
first rough idea into a concrete goal issue.
23-
24-
## How It Works
25-
26-
1. Create a GitHub issue with the `goal` label.
27-
2. Describe the outcome, completion contract, verification evidence, scope, and
28-
blocked stop condition.
29-
3. On each scheduled run, Goal selects one active issue, reads the issue and new
30-
comments, and advances the work on the canonical branch `goal/<issue>-<slug>`.
31-
4. The workflow keeps exactly one draft PR for that issue and updates the PR body
32-
as evidence changes.
33-
5. Every run posts a new comment on the goal issue and updates a status comment.
34-
6. When the completion contract is satisfied by concrete evidence, Goal comments
35-
with the evidence, adds `goal-completed`, and removes `goal`.
36-
37-
Goal stores durable state in repo-memory on the `memory/goal` branch. The state
38-
file records the issue, branch, PR, last run, current checkpoint, lessons,
39-
blockers, and run history. Humans can edit the issue or comment with steering;
40-
the next run treats that input as part of the active contract.
41-
42-
## Goal Issues
43-
44-
A good goal issue is a compact contract, not a vague backlog item. It should
45-
answer:
46-
47-
- **Outcome**: what should be true when the work is done.
48-
- **Evidence**: which commands, tests, files, screenshots, logs, or artifacts
49-
prove the outcome.
50-
- **Constraints**: what must not change, regress, or be modified.
51-
- **Boundaries**: which files, tools, services, or data the workflow may use.
52-
- **Iteration policy**: how the agent should choose the next action after each
53-
run.
54-
- **Blocked stop condition**: when the workflow should stop substantive work and
55-
report what would unlock progress.
56-
57-
Use the included issue template, or write the sections directly:
58-
59-
````markdown
60-
## Goal
61-
62-
Ship the new checkout retry path.
63-
64-
## Completion Contract
65-
66-
The retry path is implemented, old checkout behavior still passes its tests, and
67-
the issue can be closed when the commands below pass on the PR branch.
68-
69-
## Evidence / Verification
70-
71-
```bash
72-
npm test -- checkout
73-
npm run lint
74-
```
75-
76-
## Scope and Constraints
77-
78-
Allowed files:
79-
- `src/checkout/**`
80-
- `tests/checkout/**`
81-
82-
Do not change public API names or payment provider configuration.
83-
84-
## Iteration Policy
85-
86-
Prefer the smallest checkpoint that can be verified in one run. Read new human
87-
comments before choosing the next checkpoint.
88-
89-
## Blocked Stop Condition
90-
91-
If the tests require credentials or fixtures unavailable to the workflow, stop
92-
and comment with the missing item and the smallest reproducible evidence.
93-
````
94-
95-
## Branches And PRs
96-
97-
Each goal issue owns one long-running branch:
15+
Paste this into your favorite coding agent to install Goal in your repo:
9816

9917
```text
100-
goal/<issue-number>-<slugified-title>
18+
Install the Goal Agentic Workflow using https://github.com/githubnext/goal/blob/main/install.md
10119
```
10220

103-
Examples:
21+
## Use
10422

105-
- `goal/42-fix-checkout-retry`
106-
- `goal/108-migrate-auth-tests`
107-
108-
Goal always reuses the same branch and the same draft PR for an issue. It never
109-
creates per-run branch suffixes, run IDs, or random tokens.
110-
111-
## Repository Structure
23+
Paste this into your favorite coding agent to create a good goal:
11224

11325
```text
114-
goal/
115-
|-- install.md
116-
|-- workflows/
117-
| |-- goal.md
118-
| |-- scripts/
119-
| | `-- goal_scheduler.py
120-
| `-- shared/
121-
| `-- reporting.md
122-
|-- .github/
123-
| `-- ISSUE_TEMPLATE/
124-
| `-- goal.md
125-
`-- tests/
126-
`-- test_goal_scheduler.py
26+
Install the Goal Agentic Workflow using https://github.com/githubnext/goal/blob/main/new-goal.md
12727
```
12828

129-
## Built On
130-
131-
- [GitHub Agentic Workflows](https://github.com/github/gh-aw)
132-
- [GitHub Copilot](https://github.com/features/copilot)
133-
- Goal-command ideas from Codex and Claude Code: durable objectives, explicit
134-
evidence, scoped continuation, and evidence-based completion.
29+
The agent should help turn the work into a concrete, verifiable issue before
30+
the `goal` label is added.

0 commit comments

Comments
 (0)