diff --git a/.gitea/workflows/architectural-sweep.yml b/.gitea/workflows/architectural-sweep.yml new file mode 100644 index 0000000..d0b9734 --- /dev/null +++ b/.gitea/workflows/architectural-sweep.yml @@ -0,0 +1,79 @@ +name: Architectural Sweep + +on: + # Uncomment to enable scheduled runs (adjust cron to your timezone) + # schedule: + # # 4:00 AM America/Chicago daily + # # CDT (summer, UTC-5): 09:00 UTC <- this cron + # # CST (winter, UTC-6): 10:00 UTC <- update to 0 10 * * * Nov-Mar + # - cron: '0 9 * * *' + workflow_dispatch: + +jobs: + create-sweep-issue: + name: Create Architectural Sweep Issue + runs-on: ubuntu-latest + + steps: + - name: Create sweep issue + run: | + TODAY=$(date +%Y-%m-%d) + BODY="## ๐Ÿ—๏ธ Architectural Sweep โ€” ${TODAY}\n\n" + BODY+="Generated for architectural sweep of the llm-tools repository.\n\n" + BODY+="---\n\n" + BODY+="> โš ๏ธ **Agent Instructions โ€” READ BEFORE PROCEEDING**\n>\n" + BODY+="> You MUST post a **separate comment** on this issue for each domain below as you complete it.\n" + BODY+="> Do NOT wait until all domains are finished. Post findings immediately after completing each section.\n" + BODY+="> Each comment must be titled with the domain name and date, e.g. \`๐Ÿ—๏ธ Architecture Findings โ€” ${TODAY}\`.\n" + BODY+="> If a domain reveals a critical issue, open a new issue for it and link it here before moving on.\n\n" + BODY+="---\n\n" + BODY+="### ๐Ÿ—๏ธ Architecture & Organization\n\n" + BODY+="Review the overall structure and report findings:\n\n" + BODY+="- [ ] Module boundaries โ€” are agents, clients, tools, workflows cleanly separated?\n" + BODY+="- [ ] Manifest integrity โ€” does \`manifest.json\` accurately reflect all available tools/agents?\n" + BODY+="- [ ] Dependency flow โ€” any circular imports or unexpected cross-module coupling?\n" + BODY+="- [ ] Interface consistency โ€” do clients/tools expose consistent calling conventions?\n" + BODY+="- [ ] Agent definitions โ€” are agents in \`agents/\` properly structured and documented?\n" + BODY+="- [ ] Workflow definitions โ€” are workflows in \`workflows/\` reusable and composable?\n\n" + BODY+="---\n\n" + BODY+="### ๐Ÿงช Test Coverage\n\n" + BODY+="Analyse test coverage and surface gaps:\n\n" + BODY+="- [ ] Identify files with zero test coverage\n" + BODY+="- [ ] Flag untested critical paths: LLM client calls, tool invocations, agent orchestration\n" + BODY+="- [ ] Assess test quality โ€” meaningful assertions vs. mock-heavy no-ops\n" + BODY+="- [ ] Check for integration tests covering end-to-end tool/agent flows\n\n" + BODY+="---\n\n" + BODY+="### โšก Optimizations\n\n" + BODY+="Identify performance and efficiency opportunities:\n\n" + BODY+="- [ ] LLM call patterns โ€” unnecessary duplicate calls, missing caching/deduplication\n" + BODY+="- [ ] Token efficiency โ€” are prompts concise? any runaway context windows?\n" + BODY+="- [ ] Client implementation โ€” connection pooling, retry logic, timeout handling\n" + BODY+="- [ ] Analytics pipeline โ€” are analytics tools lightweight enough for production use?\n" + BODY+="- [ ] Document processing โ€” memory efficiency for large documents\n\n" + BODY+="---\n\n" + BODY+="### ๐Ÿ› Bugs Identified\n\n" + BODY+="Review open bugs and scan for regressions:\n\n" + BODY+="- [ ] Triage all open \`bug\` issues โ€” still reproducible? stale? needs escalation?\n" + BODY+="- [ ] Scan for TODO/FIXME/HACK, empty catch blocks, unhandled promise rejections\n" + BODY+="- [ ] Edge cases: empty LLM responses, API rate limits, malformed tool inputs, network timeouts\n" + BODY+="- [ ] Check error handling consistency across all clients\n\n" + BODY+="---\n\n" + BODY+="### ๐Ÿงน Tech Debt\n\n" + BODY+="Surface accumulated shortcuts, deferred work, and structural rot:\n\n" + BODY+="- [ ] Scan for TODO/FIXME/HACK/TEMP comments โ€” log count, age, and owning file\n" + BODY+="- [ ] Identify deprecated dependencies โ€” anything with a known replacement or EOL warning\n" + BODY+="- [ ] Flag dead code โ€” unused exports, unreachable branches, commented-out logic\n" + BODY+="- [ ] Note any tools/agents that are stubs or placeholders not yet implemented\n" + BODY+="- [ ] Check if \`llm.txt\` and \`AGENTS.md\` are current and accurate\n" + BODY+="- [ ] Estimate rough effort to resolve each item found (S / M / L)\n\n" + BODY+="---\n\n" + BODY+="_๐Ÿพ Silma โ€” llm-tools ยท auto-generated ${TODAY}_" + + curl -f -s -X POST \ + "http://100.79.253.19:3000/api/v1/repos/${{ gitea.repository }}/issues" \ + -H "Authorization: token ${{ gitea.token }}" \ + -H "Content-Type: application/json" \ + -d "{ + \"title\": \"Architectural Sweep โ€” ${TODAY}\", + \"body\": \"${BODY}\" + }"