# McCauley — History

## Core Context

- **Project:** A Windows COM interop MCP server and CLI for programmatic Excel automation with 25 tools and 225 operations.
- **Role:** Lead
- **Joined:** 2026-03-15T10:42:22.614Z

## Learnings

<!-- Append learnings below -->
- 2026-04-27: **Push and PR workflow completed.** Switched gh auth from EMU account (stbrnner_microsoft) to personal account (sbroenne) per repo requirement. Pushed feature/gh-pages-cli-plugin-install (post-merge logging commit 22ad69a). PR #620 already merged; created new PR #622 for Scribe logging of Nate's bootstrap smoke regression work. PR captures runtime bootstrap test additions, fixture alignment to current shipped surface, and team orchestration logs. Status: Open, ready for review.

- 2026-04-25: **Extended workflow audit — removal analysis complete.**11 active workflows all KEEP (build-cli, build-mcp-server, codeql, dependency-review, stale, deploy-gh-pages, release all essential; publish-plugins new but critical for Copilot CLI marketplace). Two disabled workflows recommended for REMOVAL: deploy-azure-runner.yml.disabled (infrastructure undeployed 4 months, no active use) and integration-tests.yml.disabled (superseded by coverage audits in build pipeline). Removal plan: delete .disabled files, archive infrastructure context in .github/docs/INFRASTRUCTURE_DECISIONS.md, document in TESTING_STRATEGY.md. Risk: none — git history + documentation preserved. Recommendation: execute removal immediately (cleaner directory, no functional loss). Detailed report: .squad/decisions/inbox/mccauley-workflow-removal-recommendations.md

- 2026-04-25: **Workflow audit complete.** All 11 active workflows are current, properly ordered, and follow GitHub best practices. No deprecated action versions, missing permission scopes, or contradictory messaging. Release pipeline (release.yml + publish-plugins.yml) is well-architected for multi-component coordination. One publish-plugins failure (2026-04-24) traced to environmental cause (dirty branch state during parallel Phase work), not workflow defect. Monitoring: next publish-plugins run after release #82 for confirmation. PR gate opens for fix/workflow-warnings-and-cleanup branch; Cheritto changes must preserve job dependencies, coverage audits, release messaging. Detailed report: .squad/decisions/inbox/mccauley-workflow-audit-report.md

- 2026-03-16: Treat reported `set-values` width failures above 13 columns as MCP/service/client-shape suspects first, not automatic Core defects; Core integration coverage already exercises `SetValues` on `A1:P1` successfully.
- 2026-03-16: Split "missing formatting capability" reports into real product gaps versus discoverability gaps. `set-number-format` already exists on `range`, and `auto-fit-columns` already exists on `range_format`.
- 2026-03-16: Do not accept "activate the new sheet" as the default fix for post-create write issues without proof; `SetValues` resolves by explicit sheet name, so a non-`A1` write failure after sheet creation needs a targeted reproduction test before changing lifecycle behavior.
- 2026-03-17: Final gate for Bug 1 stays green when the fix validates rectangular row widths at the command boundary, mirrors the same guard in `SetFormulas`, and keeps wider named-range or multi-area behavior explicitly out of scope until a separate repro exists.
- 2026-03-18: Squad roster is fully staffed (7 active members + 2 monitors). Removed orphaned @copilot routing references that had no corresponding agent entry. Current focus file confirms all work routes to named squad members. Routing.md simplified to reflect actual agent responsibilities without @copilot path.
- 2026-03-18: **Roster Review Complete.** Squad is correctly staffed and well-aligned. All 6 core workstreams covered: COM interop (Shiherlis + Hanna), MCP/CLI parity (Cheritto), tests (Nate), docs (Trejo), architecture (McCauley). Bus factor is 1-2 (each core specialist is singular point of failure for 2+ weeks); manageable but acknowledged. @copilot: never add (redundant, creates false routing, unclear autonomy). Recommendation: keep as-is, document bus factor risk, no roster changes needed.
- 2026-03-18: Comprehensive roster review completed: covered 5 questions across workstreams, role gaps, redundancy, @copilot decision, and specific recommendations. Finding: no roster changes warranted. Each role is distinct, necessary, and non-overlapping. Coverage is complete and properly aligned. Team is ready.
- 2026-03-21: **Stability Investigation Completed.** Reviewed last 10 PRs and cross-referenced against bug report. Findings: existing test coverage proves command-level correctness; gaps exist in serial workflows (Power Query create → refresh → modify → reopen). Produced 3-phase regression-test-first plan. No code changes requested. Team recommended baseline → edge cases → recovery test sequence.
- 2026-03-21: **PIVOT DECISION ISSUED.** Serial workflow regression tests all GREEN (7 tests across ExcelBatchSerialWorkflowTests and SessionManagerSerialWorkflowTests). These validate existing correct behavior as control baselines. Conclusion: ComInterop/session timeout layer is healthy. Any remaining bug lives above this layer. Escalation to CLI daemon state, service routing, workbook-specific patterns authorized. New agents: Nate (find first true RED regression above control layer) and Cheritto (trace wrapper seam for bug survival).
- 2026-03-21: **REAL REPRO PLANNING COMPLETED.** Nate reproduced intermittent lingering Excel after session close on copied real workbook (25-40% probability). ComInterop control tests remain GREEN. Bug is in wrapper seam (session state, service routing, or workbook-specific PQ behavior). Produced surgical instrumentation plan: three files (SessionManager, ExcelBatch, ExcelShutdownService) get detailed logging before fix attempt. Red test: checked-in real workbook fixture with CSV-backed PQ queries. Stop conditions: instrumentation identifies seam → fix owner assigned → Hanna gate before shipping. Hanna mandatory reviewer. No speculative code changes until evidence points to root cause. Estimated 2-3 days investigation, then 1-2 days fix.
- 2026-04-01: Hand-written MCP tools need explicit `[Description]` attributes on optional parameters; XML `<param>` docs alone did not populate the published JSON schema. For schema/discoverability bugs, gate fixes with a live `ListToolsAsync()` integration test and treat Claude Desktop runs as supporting evidence only unless the desktop client is confirmed to be using the current repo build.
- 2026-04-01: **PR Scope Review — dependency-refresh + pytest-skill-engineering.** 51 changed files triaged. 43 in-scope (17 NuGet bumps, 3 VS Code dep bumps, 29 pytest migration files, 8 doc renames). 4 files MUST be excluded (.squad agent histories + project-conventions skill). Migration pattern is mechanically clean: Agent→CopilotEval, aitest_run→copilot_eval, new cli_mcp_server.py FastMCP wrapper. Two major version jumps need build verification: MCP SDK 0.9.0-preview.2→1.2.0 and TypeScript 5.9→6.0. Branch is ready for issue/PR execution after exclusions.

- 2026-04-01: **CHART HARDENING ASSESSMENT COMPLETED.** Chart surface already provides comprehensive structured metadata (positioning fields, collision detection, warnings). No confirmed product bug exists. Cost (3-4 hours) outweighs marginal value. Decision: DEFER indefinitely pending real user failure, cross-tool parity requirement, multi-model evidence, or skill author request. If triggered, minimal scope only: add single `CollisionWarning: bool` + `SuggestedNextAction: string` to `ChartCreateResult`. Confidence HIGH.

- 2026-04-02: **ERROR DIAGNOSTICS CONTRACT GATE — CONDITIONAL APPROVAL.** Reviewed first-slice implementation for #585 error handling milestone. Routing architecture is correct (MCP/CLI converge at ExcelMcpService.ProcessAsync identically). #585 regression tests are structurally clean with proper round-trip verification. Exception propagation and COM cleanup pass. One blocking finding: CLI error envelope uses `error` property while MCP uses `errorMessage`, CLI omits `isError` flag, and CLI lacks structured diagnostic fields (`exceptionType`, `hresult`). This is a Rule 24 parity violation. Fix assigned to Cheritto. Advisory items: MCP's two error shapes should converge; failure-path test coverage needed (Nate).
- 2026-04-02: **Team closeout for the first diagnostics slice.** Final team posture for #585 is additive parity only: CLI must mirror MCP envelope fields, the shared transport should carry structured diagnostics, and focused validation slices outrank broader MCP class runs until the existing `ProgramTransport` session flake is fixed separately.
---

## 2026-04-24: Kelso Plugin Phases -1 to 3 Complete — All Decisions Locked

**Status:** ✅ APPROVED  
**Scope:** Copilot CLI plugin implementation, distribution automation, infrastructure audit  

**Key Decisions (All Locked):**
1. Phase -1 Spike: Validated plugin install mechanism, workspace-scoped MCP finding
2. Phase 0 Scaffold: Created published repo structure, two-plugin separation (excel-mcp + excel-cli)
3. Phase 1: Removed placeholder agent (not needed; skills provide comprehensive guidance)
4. Phase 3: Automated release workflow with corrected version extraction
5. Audit: Infrastructure 85% clean, 3 actionable items identified (2 for Trejo, 1 for Kelso)

**Agent Decision Already Made:**
- Phase 1 placeholder agent: REMOVED entirely (no value add, spec doesn't require agents)
- Rationale: Skills already comprehensive; agent without clear scope is worse than nothing

- 2026-05-13: **Daemon Lifecycle Review Coordination.** Coordinated four-agent daemon review (Hanna COM, Nate test, Cheritto lead, Scribe logging). Synthesized findings into team decision: daemon is structurally unsound at lifecycle boundaries. Current startup retry is mitigation, not fix. **Key issues:** Startup treats "spawned" as "ready" (false-positive coordination), shutdown is not request-safe (RPC replies can be cut off), session close reports success even on Excel teardown failure, operation tracking exists but is dead in production. **Priority framework:** P0 (startup readiness + shutdown request-safety), P1 (session close truthfulness + operation tracking), P2 (diagnostics + graceful/force-stop separation). **Decision:** Pause PR #651. Initiate P0 hardening with deterministic focused tests, no retry-only fixes. Real fix requires redesign at daemon orchestration layer, not tuning at retry/timeout level.

- 2026-05-13: **Daemon Rescue Gate After 45-Minute Stall.** Treat a 45-minute silent validation worker as stalled; stop waiting and split rescue ownership. Cheritto is eligible for the current product rescue because Hanna explicitly named Cheritto as the next reviser after the later review gate, and the earlier Cheritto rejection had already been independently revised by Shiherlis. Nate owns validation isolation. Acceptance is narrow: reproduce/fix the default-pipe close/save/status/reopen timeout, rerun focused `ServiceDaemon` CLI coverage, rerun ComInterop OnDemand because `SessionManager` changed, run Release build plus COM/success audits, and require Hanna COM review before McCauley final approval.

---

## 2026-04-21: PR #605 Review — Skill Optimization (EXTERNAL CONTRIB)

**Status:** ❌ DO NOT MERGE AS-IS  
**Author:** rohan-tessl (Tessl external contributor)  
**Scope:** Skill score improvements (internal + public), GitHub Action for auto-scoring

**Verdict:** Two blocking issues:

1. **Unvetted Workflow Automation** — PR adds `.github/workflows/skill-review.yml` (new CI/CD gate via external Tessl action) without test run on fork. Requires dry-run verification before shipping.

2. **Unapproved Internal Skills Edits** — PR rewrites `.squad/skills/project-conventions`, `error-transport-context`, `precommit-release-gates` without team review. These describe OUR conventions; only Stefan should approve rewrites.

**What's Good:**
- ✅ Public skills (`excel-cli`, `excel-mcp`) cleanup is solid: duplication removal, format fixes, no functional impact
- ✅ Internal skills content IS clearer (better "Use when" clauses, concrete examples, structured workflows)
- ✅ Auto-scoring concept is sound — continuous visibility into skill quality is valuable

**Recommendation:** Split the PR:
1. **Accept:** Public skills cleanup (exe-cli, excel-mcp) — safe, pure refactor
2. **Revert:** Internal skills rewrites — deferred to Stefan for explicit sign-off
3. **Test First:** Workflow action on fork branch, verify output, THEN merge

**Reasoning:** Too much moving at once. Public cleanup can go immediately. Internal conventions need Stefan's voice. Workflow automation needs validation before shipping to main.

**Decision:** BLOCK until splits executed. Do not approve as monolithic PR.
- Can add later if multi-step workflow orchestration justifies it

**No Architectural Gate Needed:** All phases completed with your earlier approval. Kelso is ready to create GitHub issue + PR on `feature/copilot-cli-plugins` branch.

**Deliverables:**
- ✅ Published repo created: `sbroenne/mcp-server-excel-plugins`
- ✅ 2-plugin architecture: `excel-mcp` (MCP server + skill) + `excel-cli` (skill-only)
- ✅ Release workflow: `.github/workflows/publish-plugins.yml` with automated publishing
- ✅ Audit complete: 3 cleanup items identified, no blockers

**Next:** Scribe will orchestrate Kelso's PR creation after merging all decisions.

---

### 2026-04-24: Session End — Blocker on PR, Decisions Merged, Scribe Logs Written

**Phase 5 E2E Plugin Testing (Nate):**
- Both excel-mcp and excel-cli plugins validated production-ready end-to-end.
- Real installation tested with GitHub Copilot CLI; all scripts execute successfully.
- Only blocker: missing v0.0.1 GitHub Release asset (for download.ps1 e2e flow).
- Workaround validated: manual binary placement works perfectly.

**Phase 6 Release Docs (Trejo):**
- Docs audit complete: old infrastructure cleaned up, new release process well-documented but undiscoverable.
- Release docs now linked from main README (3-line addition).
- RELEASE-STRATEGY.md updated to explicitly document GitHub Copilot CLI plugin publishing workflow.

**Blocker Reported (Kelso):**
- DO NOT open plugin PR from current mixed dirty tree (plugin work + Squad infrastructure + RangeCommands.Formulas.cs).
- Stop, report blocker plainly, wait for branch narrowing before PR creation.

**Scribe Actions (2026-04-24T09:26:02Z):**
- ✅ Orchestration log written: 2026-04-24T09-26-02Z-nate-revert-range-change.md
- ✅ Session log written: 2026-04-24T09-26-02Z-revert-range-change.md
- ✅ Decision inbox merged to decisions.md (6 files, deduplicated)
- ✅ Cross-agent history updated (Nate, Kelso, Trejo, McCauley)
- ✅ Git commit skipped (nothing staged, user explicitly directed revert)

**User Directive Executed:**
- Reverted unrelated RangeCommands.Formulas.cs working-tree change (Nate completed).
- Repo working tree cleaned per user instruction.

---

## 2026-04-25: Workflow Audit Complete

**Finding:** No stale/legacy workflows detected. Repository maintains lean, active CI/CD suite:

- **11 active workflows:** Build (CLI, MCP), Release (unified), Publish Plugins, Security (CodeQL + Dependency Review), Pages, Stale Management, Squad CI
- **2 intentionally disabled:** Azure runner + integration tests (infrastructure undeployed; documented in setup guide with revival path)
- **Complexity justified:** release.yml (910 lines) = 8 release targets unified in one gate; publish-plugins.yml (554 lines) = required for Copilot CLI marketplace automation
- **No cleanup recommended:** All workflows have recent activity (some within last 24h). April 24 publish-plugins failure was environmental (dirty branch state noted in team history)

**Key Assets:**
- Full audit report written to `.squad/decisions/inbox/mccauley-workflow-audit.md`
- Release/publish workflows are coordinated via `workflow_run` (auto-trigger after release completes)
- Static site deployment active (GitHub Pages); IndexNow integration included for SEO

**Advisory:** If Azure infrastructure is permanently abandoned, consider removing `.disabled` files (but keep docs reference).


- 2026-04-25: **WORKFLOW AUDIT COMPLETE — NO ACTION REQUIRED.** Inventory audit found 11 active workflows (all current) + 2 intentionally disabled Azure workflows (properly documented). Zero stale workflows detected. publish-plugins.yml showed 1 failure (2026-04-24) due to environmental cause (dirty branch during Phase 2/3 plugin work), not workflow defect. Recommendation: monitor next publish run post-release #82. Conclusion: Workflow suite is lean and healthy; release + plugin pipelines fully coordinated; no cleanup needed.


## Daemon Rescue Session Finalization (2026-05-13T09:13:35Z)

Session: Inbox consolidation, orchestration logging, agent history sync
Status: ✅ APPROVED — All gates passed

- Decisions.md consolidated (9 inbox entries merged, 1 archived)
- Team orchestration logs created
- Session ready for production deployment
- Residual risk (prompts) accepted and documented
