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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/planner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
name: Planner Rough Scope Request
about: Structured planner intake template for deterministic scope analysis
title: "[Planner]: "
labels: ["agent", "blocked", "model:default", "type:planner"]
assignees: ""
---

## Type
- [ ] Feature planning
- [ ] Maintenance planning
- [ ] Multi-track epic planning

## Vision
- One-paragraph outcome statement:
- Intended users/owners:
- Business or technical value:

## Problem Statement
- Current state:
- Pain points:
- Why now:

## Rough Scope
| Area | In Scope | Out of Scope |
|------|----------|--------------|
| Functional | - [ ] | - [ ] |
| Technical | - [ ] | - [ ] |
| Validation | - [ ] | - [ ] |

## Child Tracks
| Track ID | Goal | Size (S/M/L) | Dependencies |
|----------|------|--------------|--------------|
| P1 | | | |
| P2 | | | |

## Dependencies
- Internal dependencies:
- [ ] None
- [ ] Listed below
- External dependencies:
- [ ] None
- [ ] Listed below

## Related Plan
- Related Plan ID (optional):
- Allowed formats: E{n}, F{n}, E{n}-F{m}, M{n}, E{n}-M{m}
<!-- ADW Agent: Use `adw_plans({ command: "list", json: true })` for discovery.
Use `adw_plans({ command: "show", plan_id: "<id>", json: true })` for verification. -->

## Constraints
- Timeline constraints:
- Resource constraints:
- Tooling/platform constraints:
- Compliance/security constraints:

## Success Metrics
- [ ] Clear acceptance criteria defined
- [ ] Risks and mitigations identified
- [ ] Child tracks are dependency-ordered
- [ ] Validation strategy is testable
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,4 @@ trees/
# ADW (AI Developer Workflow) generated files
logs/
.opencode.backup.*/
adforge_local/
13 changes: 13 additions & 0 deletions .opencode-preserve.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
preserve:
- .opencode/guides/README.md
- .opencode/guides/index.md
- .opencode/guides/architecture_reference.md
- .opencode/guides/code_culture.md
- .opencode/guides/code_style.md
- .opencode/guides/commit_conventions.md
- .opencode/guides/docstring_guide.md
- .opencode/guides/documentation_guide.md
- .opencode/guides/linting_guide.md
- .opencode/guides/pr_conventions.md
- .opencode/guides/review_guide.md
- .opencode/guides/testing_guide.md
196 changes: 196 additions & 0 deletions .opencode/agent/adw-auto-mode-manifest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
---

description: >
Subagent that builds an auto-mode manifest from batch state after issues are
created. Validates github_issue_number coverage, runs manifest init/validate,
and reports status for orchestrators.
mode: subagent
permission:
"*": deny
read: allow
edit: deny
write: deny
list: deny
move: deny
todoread: allow
todowrite: allow
task: deny
adw: deny
adw_spec: deny
adw_issues_spec: deny
adw_issues_batch_init: allow
adw_issues_batch_read: allow
adw_issues_batch_write: allow
adw_issues_batch_log: allow
adw_issues_batch_summary: allow
feedback_log: allow
auto_mode_manifest: allow
platform_operations: deny
git_operations: deny
run_pytest: deny
run_linters: deny
get_datetime: allow
get_version: deny
webfetch: deny
websearch: deny
codesearch: deny
bash: deny
---

# ADW Auto-Mode Manifest Subagent

Build an auto-mode manifest from completed issue batch state. This subagent is
intended to run **after** all issues are created and have `github_issue_number`
populated in the batch metadata.

# Input Contract

**Arguments (required):**

```
Arguments: adw_id=<batch-id>
```

**Arguments (optional):**

```
Arguments: adw_id=<batch-id> --segment-size N
Arguments: adw_id=<batch-id> --source-branch <branch>
Arguments: adw_id=<batch-id> --target-branch <branch>
Arguments: adw_id=<batch-id> --branch-type <epic|feature|maintenance>
Arguments: adw_id=<batch-id> --ship-strategy <pr|accumulate>
```

Notes:
- `segment_size` defaults to the auto-mode manifest tool's internal default when omitted.
- `source_branch`, `target_branch`, `branch_type`, and `ship_strategy` are optional pass-through
metadata for `init-from-batch` and should be forwarded unchanged when supplied by
the orchestrator contract.
- Default ship-strategy guidance is `accumulate`; use `pr` for learning/testing
scenarios or explicit one-PR-per-issue runs.
- `validate` and `status` are manifest-scope commands. They target all manifests by default;
include `--branch <branch>` only when narrowing to a specific branch manifest.
- Label gating is always enabled to ensure `auto:pause` and `auto:enabled` labels work.

# Output Signals

**Success:**

```
MANIFEST_BUILD_COMPLETE
```

**Failure:**

```
MANIFEST_BUILD_FAILED: {reason}
```

# Core Mission

1. Read batch summary and validate all issues have `github_issue_number`.
2. Initialize the auto-mode manifest from batch data.
3. Validate the manifest for dependency correctness.
4. Report the manifest status and completion signal.

# Process

1. Read the batch summary:

```python
summary = adw_issues_spec({
"command": "batch-summary",
"adw_id": adw_id
})
```

2. Verify every batch issue has `github_issue_number`:
- If any are missing, emit:
```
MANIFEST_BUILD_FAILED: Missing github_issue_number for batch indices: ...
```

3. Build the manifest from batch data:

```python
auto_mode_manifest({
"command": "init-from-batch",
"adw_id": adw_id,
"segment_size": segment_size,
"source_branch": source_branch,
"target_branch": target_branch,
"branch_type": branch_type,
"ship_strategy": ship_strategy
})
```

Deterministic full-metadata example:

```python
auto_mode_manifest({
"command": "init-from-batch",
"adw_id": "abc12345",
"source_branch": "feature/F37",
"target_branch": "main",
"branch_type": "feature",
"ship_strategy": "accumulate",
"segment_size": 3
})
```

4. Validate the manifest:

```python
auto_mode_manifest({"command": "validate"})
```

Branch-scoped validate example:

```python
auto_mode_manifest({"command": "validate", "branch": "feature/F37"})
```

5. Report status:

```python
auto_mode_manifest({"command": "status"})
```

Branch-scoped status example:

```python
auto_mode_manifest({"command": "status", "branch": "feature/F37"})
```

Emit `MANIFEST_BUILD_COMPLETE` if validation succeeds.

# Edge Cases

- **Empty batch:** Emit `MANIFEST_BUILD_FAILED: No issues in batch`.
- **Missing github_issue_number:** Emit failure with missing indices listed.
- **Manifest already exists:** Surface init error; suggest `--force` if supported.
- **Tool missing (P2 dependency):** Fail with tool error and note dependency.
- **Validation errors:** Emit `MANIFEST_BUILD_FAILED` with validation output.

# Example Output

**Success:**

```
MANIFEST_BUILD_COMPLETE

Status: SUCCESS
Batch: d1d055b2
Issues: 5
Execution Order: [42, 43, 44, 45, 46]
Manifest saved to: .adw/auto_mode_manifest.json
```

**Failure:**

```
MANIFEST_BUILD_FAILED: Missing github_issue_number for batch indices: 3, 5

Batch: d1d055b2
Action: Ensure all issues are created before building manifest
```
64 changes: 33 additions & 31 deletions .opencode/agent/adw-build-docstrings.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---

description: 'Subagent that adds/updates docstrings and runs linting with auto-fix.
Invoked by adw-format primary agent after implementation completes.

Expand All @@ -15,31 +16,32 @@ description: 'Subagent that adds/updates docstrings and runs linting with auto-f
- After modifying existing code: update docstrings, ensure linting passes
- Scope can be single file, module directory, or list of files'
mode: subagent
tools:
read: true
edit: true
write: true
list: true
ripgrep: true
move: true
todoread: true
todowrite: true
task: false
adw: false
adw_spec: true
feedback_log: true
create_workspace: false
workflow_builder: false
git_operations: false
platform_operations: false
run_linters: true
run_pytest: false
get_datetime: true
get_version: true
webfetch: false
websearch: false
codesearch: false
bash: false
permission:
"*": deny
read: allow
edit: allow
write: allow
list: allow
ripgrep: allow
move: allow
todoread: allow
todowrite: allow
task: deny
adw: deny
adw_spec: allow
feedback_log: allow
create_workspace: deny
workflow_builder: deny
git_operations: deny
platform_operations: deny
run_linters: allow
run_pytest: deny
get_datetime: allow
get_version: allow
webfetch: deny
websearch: deny
codesearch: deny
bash: deny
---

# ADW Build Docstrings Subagent
Expand Down Expand Up @@ -81,11 +83,11 @@ task({

# Required Reading

- @adw-docs/docstring_guide.md - Google-style docstring format
- @adw-docs/docstring_function.md - Function docstring examples
- @adw-docs/docstring_class.md - Class docstring examples
- @adw-docs/linting_guide.md - Linting rules and configuration
- @adw-docs/code_style.md - Code conventions
- @.opencode/guides/docstring_guide.md - Google-style docstring format
- @.opencode/guides/docstring_function.md - Function docstring examples
- @.opencode/guides/docstring_class.md - Class docstring examples
- @.opencode/guides/linting_guide.md - Linting rules and configuration
- @.opencode/guides/code_style.md - Code conventions

# Docstring Requirements

Expand Down Expand Up @@ -454,4 +456,4 @@ Context: Parser now uses new data models

**Excluded:** Test files (`*_test.py`) don't require docstrings

**References:** `adw-docs/docstring_guide.md`, `adw-docs/linting_guide.md`
**References:** `.opencode/guides/docstring_guide.md`, `.opencode/guides/linting_guide.md`
Loading