{ "_meta": { "source": "ENGINEERING_REVIEW_SCORECARD.md (workspace review 2026-05-30)", "note": "One tracker item per affected product/area, derived from the P0-P3 action plan. productId values use the ByteLyst ecosystem slugs; standalone repos use a descriptive slug. Seed with seed-tracker-items.mjs.", "repoToProductId": { "learning_ai_common_plat / ecosystem infra": "platform", "learning_ai_devops_tools": "platform", "learning_voice_ai_agent": "lysnrai", "learning_multimodal_memory_agents": "mindlyst", "learning_ai_clock": "chronomind", "learning_ai_jarvis_jr": "jarvisjr", "learning_ai_fastgap": "nomgap", "learning_ai_peakpulse": "peakpulse", "learning_ai_flowmonk": "flowmonk", "learning_ai_notes": "notelett", "learning_ai_trails": "actiontrail", "learning_ai_local_memory_gpt": "localmemgpt", "learning_ai_efforise": "efforise", "learning_ai_2nd_brain": "secondbrain", "learning_ai_mac_tooling": "mactooling", "learning_ai_productivity_web": "productivityweb", "learning_ai_webui_copilot": "webuicopilot", "learning_agent_monitoring_fx": "agentmonitoring", "learning_ai_magic_clipboard_mgr": "magicclipboard" } }, "items": [ { "productId": "platform", "type": "task", "priority": "critical", "title": "[P0] Restore a working CI gate on learning_ai_common_plat", "description": "GitHub Actions is disabled (billing) on the platform monorepo that every product depends on; gitea CI exists but isn't an enforced gate. Re-enable GH Actions or make gitea CI the mandatory pre-merge gate. Ref: ENGINEERING_REVIEW_SCORECARD.md P0#1.", "labels": ["eng-review-2026-05", "p0", "ci", "platform"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "task", "priority": "critical", "title": "[P0] Resolve ~14 dirty repos and add git upstreams", "description": "About 14 repos had uncommitted work / were behind origin at review time. Review+commit or discard intentionally, and add upstreams for learning_pytorch_todo_predictor and learning_sidecar_setup (currently no remote). Ref: scorecard P0#2.", "labels": ["eng-review-2026-05", "p0", "hygiene", "git"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "task", "priority": "high", "title": "[P0] Define agent-queue daemon run policy (stop writing to live trees)", "description": "The agent-queue daemon + devin agents were running in --permission-mode dangerous and writing directly to live working trees, causing constant dirtiness and duplicate work landing upstream. Define a least-privilege, branch-per-task policy. Ref: scorecard P0#3 + SOP ยง8.", "labels": ["eng-review-2026-05", "p0", "agents", "devops"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "task", "priority": "high", "title": "[P1] Add healthchecks + ordered depends_on to docker-compose.ecosystem.yml", "description": "The ecosystem compose orchestrates ~20 services with 30 restart policies and 24 build contexts but 0 healthcheck blocks. Add healthcheck to each backend/web service and depends_on: condition: service_healthy. Ref: scorecard D + P1#4.", "labels": ["eng-review-2026-05", "p1", "devops", "docker"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "bug", "priority": "high", "title": "[P2] Remove NODE_TLS_REJECT_UNAUTHORIZED=0 and add rate-limiting to prototype APIs", "description": "TLS verification is disabled in some Docker setups; thin/zero input validation and no rate limiting in the Python prototype apps (webui_copilot, mac_tooling). Remove the TLS bypass where a real CA/host override exists and add rate limits. Ref: scorecard F + P2#10.", "labels": ["eng-review-2026-05", "p2", "security"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "task", "priority": "low", "title": "[P3] Portfolio-wide coverage + dependency-audit in CI", "description": "Add coverage reporting and npm audit / pip-audit / cargo audit steps across the portfolio CI. Ref: scorecard P3#11.", "labels": ["eng-review-2026-05", "p3", "ci"], "source": "internal", "visibility": "internal" }, { "productId": "platform", "type": "task", "priority": "low", "title": "[P3] Lightweight release/issue cadence for the 3 flagships (notelett, actiontrail, chronomind)", "description": "Pick the production-grade flagships and drive a real launch checklist + release cadence. Ref: scorecard G + P3#12.", "labels": ["eng-review-2026-05", "p3", "process"], "source": "internal", "visibility": "internal" }, { "productId": "nomgap", "type": "task", "priority": "high", "title": "[P1] Stabilize E2E and remove continue-on-error (fastgap/nomgap)", "description": "Playwright E2E job is marked continue-on-error: true, so it isn't actually gating. Stabilize smoke E2E, then make it blocking. Ref: scorecard E + P1#5.", "labels": ["eng-review-2026-05", "p1", "testing", "e2e"], "source": "internal", "visibility": "internal" }, { "productId": "flowmonk", "type": "task", "priority": "high", "title": "[P1] Stabilize E2E and remove continue-on-error (flowmonk)", "description": "Playwright E2E is non-gating (continue-on-error: true) and visual regression is excluded on Linux CI. Stabilize and make smoke E2E blocking. Ref: scorecard E + P1#5.", "labels": ["eng-review-2026-05", "p1", "testing", "e2e"], "source": "internal", "visibility": "internal" }, { "productId": "jarvisjr", "type": "task", "priority": "high", "title": "[P1] Stabilize E2E and finish native surfaces (jarvisjr)", "description": "Playwright E2E is non-gating; watchOS/macOS in progress and Android (Phase 4) not started. Stabilize E2E and close out the 5 visible TODOs / native wiring. Ref: scorecard E/G.", "labels": ["eng-review-2026-05", "p1", "testing", "native"], "source": "internal", "visibility": "internal" }, { "productId": "secondbrain", "type": "task", "priority": "medium", "title": "[P1] Replace 60+ print() calls with logging (learning_ai_2nd_brain)", "description": "CLI/intelligence modules use 60+ print() statements (violates the no-print rule). Switch to typer.echo/logging; keep behavior identical; run pytest. Ref: scorecard B + P1#6.", "labels": ["eng-review-2026-05", "p1", "code-quality"], "source": "internal", "visibility": "internal" }, { "productId": "mactooling", "type": "task", "priority": "medium", "title": "[P2] Add tests, split 3k-line files, replace 200+ print() (learning_ai_mac_tooling)", "description": "Forensics toolkit has 0 tests, 200+ print() calls, and 3k+-line files (network_transfer_audit.py 3521, api_server.py 3116). Add a smoke test suite, split the large files, and move to logging. Ref: scorecard B/E + P2#9.", "labels": ["eng-review-2026-05", "p2", "code-quality", "testing"], "source": "internal", "visibility": "internal" }, { "productId": "productivityweb", "type": "task", "priority": "medium", "title": "[P2] Add a test suite (learning_ai_productivity_web has 0 tests)", "description": "Clean client-only Next.js tool app with 0 tests and no CI. Add unit tests for the tools registry + a smoke test, and a CI job. Ref: scorecard E + P2#7.", "labels": ["eng-review-2026-05", "p2", "testing"], "source": "internal", "visibility": "internal" }, { "productId": "webuicopilot", "type": "task", "priority": "medium", "title": "[P2] Add tests + CI + Docker (learning_ai_webui_copilot)", "description": "FastAPI + LangChain app with 0 tests, no CI, no Docker. Add pytest smoke tests for the rules/policy engines and a copilot happy-path, plus a CI job and Dockerfile. Ref: scorecard E/D + P2#7.", "labels": ["eng-review-2026-05", "p2", "testing", "devops"], "source": "internal", "visibility": "internal" }, { "productId": "agentmonitoring", "type": "task", "priority": "medium", "title": "[P2] Add CI, cut console.log, finish native TODOs (learning_agent_monitoring_fx)", "description": "No CI; 54 console.log matches; 5 TODOs for native (KMP/iOS/Android) wiring; no Docker. Add CI, reduce logging noise, and close the native TODOs. Ref: scorecard B/D/G.", "labels": ["eng-review-2026-05", "p2", "code-quality", "devops"], "source": "internal", "visibility": "internal" }, { "productId": "magicclipboard", "type": "task", "priority": "medium", "title": "[P2] Audit 50+ services for dead/stubbed code (learning_ai_magic_clipboard_mgr)", "description": "50+ service files with phase-named test buckets (Phase5-8, RemainingQATests) suggest AI-scaffold smell. Produce a report of wired vs stubbed services and consolidate. Ref: scorecard B + P2#8.", "labels": ["eng-review-2026-05", "p2", "code-quality", "audit"], "source": "internal", "visibility": "internal" } ] }