Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/taskbound.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ jobs:
with:
fetch-depth: 0

- uses: ./
- uses: Conalh/TaskBound@main
with:
fail-on: none
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
with:
fetch-depth: 0

- uses: Conalh/TaskBound@v0.1.0
- uses: Conalh/TaskBound@v0.2.0
with:
fail-on: none
```
Expand All @@ -127,7 +127,7 @@ The action uploads nothing by default. It reads local git state from the checked
You can still override the task explicitly:

```yaml
- uses: Conalh/TaskBound@v0.1.0
- uses: Conalh/TaskBound@v0.2.0
with:
task: Fix header CSS styling
fail-on: none
Expand All @@ -138,7 +138,7 @@ API key to the job. If the key is absent or the model call fails, TaskBound fall
back to heuristic scope inference and records `scopeSource: llm_fallback` in JSON.

```yaml
- uses: Conalh/TaskBound@v0.1.0
- uses: Conalh/TaskBound@v0.2.0
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
with:
Expand Down
6 changes: 3 additions & 3 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ inputs:
required: false
default: ''
scope-llm:
description: Optional OpenAI model for LLM-assisted scope extraction. Falls back to heuristic scope when offline or unauthenticated.
description: Optional OpenAI or Anthropic model for LLM-assisted scope extraction. Falls back to heuristic scope when offline or unauthenticated.
required: false
default: ''
repo:
Expand Down Expand Up @@ -54,14 +54,14 @@ runs:
run: |
set -euo pipefail
cd "$GITHUB_ACTION_PATH"
npm ci
npm ci --ignore-scripts

- name: Build TaskBound
shell: bash
run: |
set -euo pipefail
cd "$GITHUB_ACTION_PATH"
npm run build
npm run build --ignore-scripts

- name: Run TaskBound scope review
id: run
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "taskbound",
"version": "0.1.0",
"version": "0.2.0",
"description": "Post-session scope creep review for AI agent edits.",
"type": "module",
"bin": {
Expand Down
6 changes: 4 additions & 2 deletions test/workflow.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ test('action.yml can derive task scope from pull request event context', async (
assert.match(action, /--scope-context/);
assert.match(action, /--github-event/);
assert.match(action, /--scope-llm/);
assert.match(action, /npm ci --ignore-scripts/);
assert.match(action, /scope-match-count/);
});

test('self-dogfood workflow uses local action with pull request event task fallback', async () => {
test('self-dogfood workflow uses trusted action ref with pull request event task fallback', async () => {
const workflow = await readFile(join(packageRoot, '.github/workflows/taskbound.yml'), 'utf8');
assert.match(workflow, /uses: \.\//);
assert.match(workflow, /uses: Conalh\/TaskBound@main/);
assert.doesNotMatch(workflow, /uses: \.\//);
assert.match(workflow, /fetch-depth: 0/);
assert.doesNotMatch(workflow, /task:/);
});