Compare commits
1 Commits
gemini/pas
...
gemini/pas
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e390a1dc5 |
@@ -353,11 +353,3 @@ cp ~/.hermes/sessions/sessions.json ~/.hermes/sessions/sessions.json.bak.$(date
|
||||
4. Keep docs-only PRs and script-import PRs on clean branches from `origin/main`; do not mix them with unrelated local history.
|
||||
|
||||
Until those are reconciled, trust this inventory over older prose.
|
||||
|
||||
### Memory & Audit Capabilities (Added 2026-04-06)
|
||||
|
||||
| Capability | Task/Helper | Purpose | State Carrier |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **Continuity Flush** | `flush_continuity` | Pre-compaction session state persistence. | `~/.timmy/continuity/active.md` |
|
||||
| **Sovereign Audit** | `audit_log` | Automated action logging with confidence signaling. | `~/.timmy/logs/audit.jsonl` |
|
||||
| **Fallback Routing** | `get_model_for_task` | Dynamic model selection based on portfolio doctrine. | `fallback-portfolios.yaml` |
|
||||
|
||||
30
tasks.py
30
tasks.py
@@ -2126,3 +2126,33 @@ def cross_review_prs():
|
||||
continue
|
||||
|
||||
return {"reviews": len(results), "details": results}
|
||||
|
||||
@huey.periodic_task(crontab(hour="*/12"))
|
||||
def decomposition_tick():
|
||||
"""Force Multiplier 12: Automated Issue Decomposition (Epic Splitting).
|
||||
|
||||
Identifies large issues (EPICs) and flags them for decomposition into sub-tasks.
|
||||
"""
|
||||
gitea = get_gitea_client()
|
||||
repos = ["Timmy_Foundation/timmy-config", "Timmy_Foundation/timmy-home", "Timmy_Foundation/the-nexus"]
|
||||
|
||||
for repo in repos:
|
||||
issues = gitea.get_open_issues(repo)
|
||||
for issue in issues:
|
||||
labels = [l['name'] for l in issue.get('labels', [])]
|
||||
body = issue.get('body', '')
|
||||
|
||||
# Identify EPICs or large task lists
|
||||
is_epic = "EPIC" in labels or "EPIC" in issue['title']
|
||||
has_large_tasklist = body.count("- [ ]") > 5
|
||||
|
||||
if (is_epic or has_large_tasklist) and "needs-decomposition" not in labels:
|
||||
audit_log("decomposition_flagged", "system", {"repo": repo, "issue": issue['number']}, confidence="High")
|
||||
gitea.add_label(repo, issue['number'], "needs-decomposition")
|
||||
|
||||
# Add comment suggesting decomposition
|
||||
msg = "### Automated Decomposition Suggestion\n"
|
||||
msg += "This issue has been flagged as an **EPIC** or contains a large task list. "
|
||||
msg += "To improve velocity and reduce cycle time, I recommend splitting this into smaller, atomic issues.\n\n"
|
||||
msg += "I will attempt to generate a decomposition plan in the next cycle."
|
||||
gitea.create_issue_comment(repo, issue['number'], msg)
|
||||
|
||||
Reference in New Issue
Block a user