fix: increase planner constraint budget from 3 to 5 issues per run (#607)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6b27ae3692
commit
6d3294823e
1 changed files with 22 additions and 22 deletions
|
|
@ -9,7 +9,7 @@
|
||||||
#
|
#
|
||||||
# Core change from v2: replaces gap-analysis-and-spray with a constraint-
|
# Core change from v2: replaces gap-analysis-and-spray with a constraint-
|
||||||
# focused executive using a Prerequisite Tree (Theory of Constraints).
|
# focused executive using a Prerequisite Tree (Theory of Constraints).
|
||||||
# Issues are only filed at the top 3 unresolved constraints — everything
|
# Issues are only filed at the top 5 unresolved constraints — everything
|
||||||
# beyond the bottleneck exists in the tree but NOT as issues.
|
# beyond the bottleneck exists in the tree but NOT as issues.
|
||||||
#
|
#
|
||||||
# AGENTS.md maintenance is handled by the gardener (#246).
|
# AGENTS.md maintenance is handled by the gardener (#246).
|
||||||
|
|
@ -303,12 +303,12 @@ needs = ["prediction-triage"]
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "file-at-constraints"
|
id = "file-at-constraints"
|
||||||
title = "Identify top 3 constraints and file issues"
|
title = "Identify top 5 constraints and file issues"
|
||||||
description = """
|
description = """
|
||||||
This is the constraint-focused filing step. The key principle from Theory
|
This is the constraint-focused filing step. The key principle from Theory
|
||||||
of Constraints: only work on the bottleneck. Everything else is waste.
|
of Constraints: only work on the bottleneck. Everything else is waste.
|
||||||
|
|
||||||
From the updated prerequisite tree, identify the top 3 constraints:
|
From the updated prerequisite tree, identify the top 5 constraints:
|
||||||
|
|
||||||
A **constraint** is an unresolved prerequisite that blocks the most
|
A **constraint** is an unresolved prerequisite that blocks the most
|
||||||
downstream objectives. To find them:
|
downstream objectives. To find them:
|
||||||
|
|
@ -319,7 +319,7 @@ downstream objectives. To find them:
|
||||||
|
|
||||||
2. Rank all unresolved prerequisites by blocking score (descending).
|
2. Rank all unresolved prerequisites by blocking score (descending).
|
||||||
|
|
||||||
3. Select the top 3. These are the constraints.
|
3. Select the top 5. These are the constraints.
|
||||||
|
|
||||||
When filing issues at constraints, choose the right agent type:
|
When filing issues at constraints, choose the right agent type:
|
||||||
|
|
||||||
|
|
@ -332,13 +332,13 @@ Prefer action dispatch when:
|
||||||
- Evidence is required before a constraint can be marked done
|
- Evidence is required before a constraint can be marked done
|
||||||
- A decision is blocked on data that a formula can provide
|
- A decision is blocked on data that a formula can provide
|
||||||
|
|
||||||
Action issues count toward the 3-issue constraint budget — they are
|
Action issues count toward the 5-issue constraint budget — they are
|
||||||
strategic investments, not maintenance. The planner decides what data
|
strategic investments, not maintenance. The planner decides what data
|
||||||
matters based on current constraints, not what formulas exist.
|
matters based on current constraints, not what formulas exist.
|
||||||
|
|
||||||
### Stuck issue handling — dispatch to groom-backlog formula
|
### Stuck issue handling — dispatch to groom-backlog formula
|
||||||
|
|
||||||
Before filing, cross-reference the top 3 constraints against the
|
Before filing, cross-reference the top 5 constraints against the
|
||||||
`stuck_issues[]` list from the update-prerequisite-tree step.
|
`stuck_issues[]` list from the update-prerequisite-tree step.
|
||||||
|
|
||||||
If a constraint issue was detected as BOUNCED or LABEL_CHURN:
|
If a constraint issue was detected as BOUNCED or LABEL_CHURN:
|
||||||
|
|
@ -372,13 +372,13 @@ If a constraint issue was detected as BOUNCED or LABEL_CHURN:
|
||||||
- [ ] Original issue updated with links to sub-issues
|
- [ ] Original issue updated with links to sub-issues
|
||||||
|
|
||||||
Label this action issue with the `action` label (not `backlog`).
|
Label this action issue with the `action` label (not `backlog`).
|
||||||
This counts toward the 3-issue-per-run limit.
|
This counts toward the 5-issue-per-run limit.
|
||||||
|
|
||||||
If a constraint issue was detected as ESCALATED:
|
If a constraint issue was detected as ESCALATED:
|
||||||
- Do NOT file new work. Add a comment to the issue noting the
|
- Do NOT file new work. Add a comment to the issue noting the
|
||||||
escalation was seen, and mark the prerequisite in the tree as:
|
escalation was seen, and mark the prerequisite in the tree as:
|
||||||
`[ ] <name> ⚠ escalated — awaiting human decision`
|
`[ ] <name> ⚠ escalated — awaiting human decision`
|
||||||
- Do NOT count this against the 3-issue limit.
|
- Do NOT count this against the 5-issue limit.
|
||||||
|
|
||||||
Filing gate — for each constraint (that is NOT stuck):
|
Filing gate — for each constraint (that is NOT stuck):
|
||||||
|
|
||||||
|
|
@ -414,24 +414,24 @@ Filing gate — for each constraint (that is NOT stuck):
|
||||||
|
|
||||||
### Priority label management
|
### Priority label management
|
||||||
|
|
||||||
After identifying the top 3 constraints and their issues (existing or newly
|
After identifying the top 5 constraints and their issues (existing or newly
|
||||||
filed), synchronize the `priority` label so only the current bottleneck
|
filed), synchronize the `priority` label so only the current bottleneck
|
||||||
issues are prioritized. The `backlog` label is NEVER removed — `priority`
|
issues are prioritized. The `backlog` label is NEVER removed — `priority`
|
||||||
is purely additive.
|
is purely additive.
|
||||||
|
|
||||||
5. **Add `priority` to top-3 constraint issues:**
|
5. **Add `priority` to top-5 constraint issues:**
|
||||||
For each of the top 3 constraint issues (whether just filed or already
|
For each of the top 5 constraint issues (whether just filed or already
|
||||||
existing), check if it already has the `priority` label. If not, add it:
|
existing), check if it already has the `priority` label. If not, add it:
|
||||||
curl -sf -X POST -H "Authorization: token $CODEBERG_TOKEN" \
|
curl -sf -X POST -H "Authorization: token $CODEBERG_TOKEN" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
"$CODEBERG_API/issues/<issue_number>/labels" \
|
"$CODEBERG_API/issues/<issue_number>/labels" \
|
||||||
-d '{"labels":[<priority_label_id>]}'
|
-d '{"labels":[<priority_label_id>]}'
|
||||||
|
|
||||||
6. **Remove `priority` from issues no longer in top 3:**
|
6. **Remove `priority` from issues no longer in top 5:**
|
||||||
Fetch all open issues that currently have the `priority` label:
|
Fetch all open issues that currently have the `priority` label:
|
||||||
curl -sf -H "Authorization: token $CODEBERG_TOKEN" \
|
curl -sf -H "Authorization: token $CODEBERG_TOKEN" \
|
||||||
"$CODEBERG_API/issues?state=open&labels=priority&type=issues&limit=50"
|
"$CODEBERG_API/issues?state=open&labels=priority&type=issues&limit=50"
|
||||||
For each issue in this list that is NOT one of the current top 3
|
For each issue in this list that is NOT one of the current top 5
|
||||||
constraint issues, remove the `priority` label (demote back to plain
|
constraint issues, remove the `priority` label (demote back to plain
|
||||||
`backlog`):
|
`backlog`):
|
||||||
curl -sf -X DELETE -H "Authorization: token $CODEBERG_TOKEN" \
|
curl -sf -X DELETE -H "Authorization: token $CODEBERG_TOKEN" \
|
||||||
|
|
@ -440,8 +440,8 @@ is purely additive.
|
||||||
get priority, not stale constraints from previous runs.
|
get priority, not stale constraints from previous runs.
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
- **Maximum 3 issues filed per run** — only at constraints
|
- **Maximum 5 issues filed per run** — only at constraints
|
||||||
- **No issues filed past the bottleneck** — items beyond the top 3
|
- **No issues filed past the bottleneck** — items beyond the top 5
|
||||||
constraints exist in the tree but NOT as issues
|
constraints exist in the tree but NOT as issues
|
||||||
- **Existing premature issues left as-is** — do not close issues filed
|
- **Existing premature issues left as-is** — do not close issues filed
|
||||||
by previous planner versions, even if they're past the bottleneck
|
by previous planner versions, even if they're past the bottleneck
|
||||||
|
|
@ -491,10 +491,10 @@ an issue:
|
||||||
|
|
||||||
4. vault-poll.sh will notify the human automatically.
|
4. vault-poll.sh will notify the human automatically.
|
||||||
|
|
||||||
Procurement requests count toward the 3-item-per-run limit (issues +
|
Procurement requests count toward the 5-item-per-run limit (issues +
|
||||||
procurement requests combined).
|
procurement requests combined).
|
||||||
|
|
||||||
If all top 3 constraints already have open issues or pending vault
|
If all top 5 constraints already have open issues or pending vault
|
||||||
requests, note that the backlog is aligned with the constraint focus.
|
requests, note that the backlog is aligned with the constraint focus.
|
||||||
No new items needed.
|
No new items needed.
|
||||||
"""
|
"""
|
||||||
|
|
@ -536,7 +536,7 @@ Format:
|
||||||
- Proposed: <list of new capabilities proposed>
|
- Proposed: <list of new capabilities proposed>
|
||||||
(or "No tree changes" if none)
|
(or "No tree changes" if none)
|
||||||
|
|
||||||
## Top 3 constraints
|
## Top 5 constraints
|
||||||
1. <prerequisite> — blocks N objectives — issue #NNN (existing|filed|already open)
|
1. <prerequisite> — blocks N objectives — issue #NNN (existing|filed|already open)
|
||||||
2. <prerequisite> — blocks N objectives — issue #NNN
|
2. <prerequisite> — blocks N objectives — issue #NNN
|
||||||
3. <prerequisite> — blocks N objectives — issue #NNN
|
3. <prerequisite> — blocks N objectives — issue #NNN
|
||||||
|
|
@ -552,15 +552,15 @@ Format:
|
||||||
(or "No new issues — constraints already have open issues" if none)
|
(or "No new issues — constraints already have open issues" if none)
|
||||||
|
|
||||||
## Priority label changes
|
## Priority label changes
|
||||||
- Added priority: #NNN, #NNN (top 3 constraints)
|
- Added priority: #NNN, #NNN (top 5 constraints)
|
||||||
- Removed priority: #NNN (no longer in top 3)
|
- Removed priority: #NNN (no longer in top 5)
|
||||||
(or "No priority changes" if the set is unchanged)
|
(or "No priority changes" if the set is unchanged)
|
||||||
|
|
||||||
## Observations
|
## Observations
|
||||||
- Key patterns, resource state, metric trends noticed during this run
|
- Key patterns, resource state, metric trends noticed during this run
|
||||||
|
|
||||||
## Deferred (in tree, not filed)
|
## Deferred (in tree, not filed)
|
||||||
- Items in the tree beyond the top 3 constraints, and why they're not filed yet
|
- Items in the tree beyond the top 5 constraints, and why they're not filed yet
|
||||||
|
|
||||||
Keep each entry concise — 30-50 lines max.
|
Keep each entry concise — 30-50 lines max.
|
||||||
|
|
||||||
|
|
@ -585,7 +585,7 @@ where N is the current total run count.
|
||||||
|
|
||||||
Include:
|
Include:
|
||||||
- Date of this summarization
|
- Date of this summarization
|
||||||
- Current constraint focus (top 3 from this run)
|
- Current constraint focus (top 5 from this run)
|
||||||
- Distilled patterns and learnings from recent journal entries
|
- Distilled patterns and learnings from recent journal entries
|
||||||
- What was observed (resource state, metric trends, project progress)
|
- What was observed (resource state, metric trends, project progress)
|
||||||
- Strategic direction and watch list for future runs
|
- Strategic direction and watch list for future runs
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue