diff --git a/.github/prompts/update-readme.prompt.md b/.github/prompts/update-readme.prompt.md index 2871e8f..664b2d2 100644 --- a/.github/prompts/update-readme.prompt.md +++ b/.github/prompts/update-readme.prompt.md @@ -1,12 +1,24 @@ Act as a Senior Technical Program Manager. I need to update the `README.md` for my 'Workday-MCP' project to serve as a high-visibility Status Page. -**CONTEXT:** -- We just moved from a single-file script to a modular architecture (`server.py` + `lib/data.py`). -- We have 3 operational tools: `get_worker_status`, `get_worker_manager`, and `scan_manager_mismatches`. -- Current Goal: WIS-017 (Manager Mismatch Detection) is prototyped and functional with 9 mock records. -- Next Milestone: WIS-008 (Transitioning from Mock to Real Workday API). +## CONTEXT +### Phase 1: Context Retrieval (RAG) +**Execute these lookups to ground your analysis:** +1. **Get the "What" (Code):** + * Run: `git diff --cached` (If empty, warn user to stage files first). +2. **Get the "Why" (Intent):** + * **Search Workspace:** Find the most recent `SESSION_SNAPSHOT*.md` in `documentation/project-history/`. + * **Search Workspace:** Look for `TODO` or `// RESTART NOTE` comments in the changed files themselves. + * *Reasoning:* A commit message is better if it says "feat(auth): enable TFA per session plan" rather than just "feat(auth): update config". -**REQUIREMENTS:** +### Phase 2: Change Analysis (Chain of Thought) +*Reference: `.github/knowledge/example.CoT-Prompting.md`* + +Analyze the combined inputs (Diff + Session Context): +1. **Component Determination:** Identify which major component(s) of the project are affected (e.g., `core`, `auth`, `docs`). +2. **Scope/WIS Identification:** Narrow to the specific module (e.g., `core`, `auth`, `docs`) and align with WIS IDs for traceability. +3. **Breaking Change Check:** Does this modify `compose.yaml` ports or volume paths? If yes, flag as `BREAKING CHANGE`. + +## REQUIREMENTS 1. **Visual Status:** Use a "Traffic Light" system for project components: - 🟢 Green: Functional/Production-Ready - 🟡 Yellow: In Progress/Development @@ -15,8 +27,8 @@ Act as a Senior Technical Program Manager. I need to update the `README.md` for 3. **Sprint Alignment:** Reference the WIS (Workday Integration Suite) IDs to maintain traceability to our 2026 roadmap. 4. **Readability:** Use clean Markdown tables and bold headers for scannability. -**INPUT DATA:** +## INPUT DATA [PASTE YOUR CURRENT README HERE] -**RECENT ACTIVITY:** +## RECENT ACTIVITY [PASTE YOUR RECENT GIT LOG OR SUMMARY HERE] \ No newline at end of file diff --git a/README.md b/README.md index c7a59c8..b87c6dd 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ **Updated:** 2026-04-03 -This page is the high-visibility execution status for the Workday Integration -Suite (WIS) deliverables in this repository. +This page is the high-visibility execution status for Workday Integration Suite +(WIS) delivery in this repository. ## Traffic-light legend @@ -13,66 +13,75 @@ Suite (WIS) deliverables in this repository. | 🟡 Yellow | In progress / development | | 🔴 Red | Blocked / not started | +## Context retrieval checkpoint + +| Signal | Result | Impact | +| --- | --- | --- | +| `git diff --cached` | No staged files detected | Commit-intent diff is unavailable; stage files before the next status refresh that requires commit-scoped analysis. | +| Latest project snapshot | `documentation/project-history/SESSION_SNAPSHOT_2026-04-03.md` | Session confirms strong standards discipline and that Workday execution remains in kickoff-to-build transition. | +| `TODO` / `// RESTART NOTE` in staged files | Not applicable (no staged files) | No commit-scoped intent markers available for this update cycle. | +| Breaking change scan (`compose.yaml` ports/volumes) | No matching changes detected | No `BREAKING CHANGE` flag required for runtime port/path behavior. | + ## Program status summary | Component | WIS traceability | Status | Notes | | --- | --- | --- | --- | -| Modular runtime architecture (`server.py` + `lib/data.py`) | WIS-006 | 🟢 Green | Migrated from single-file script to modular layout for maintainability and cleaner backend swap-in. | -| Worker status tool (`get_worker_status`) | WIS-009 | 🟢 Green | Tool returns structured, allowlist-oriented worker payloads from deterministic mock data. | -| Worker manager lookup (`get_worker_manager`) | WIS-017 prep | 🟢 Green | Manager relationship resolution supports normal, missing-manager, and unresolved-manager scenarios. | -| Manager mismatch scan (`scan_manager_mismatches`) | WIS-017 | 🟢 Green | Prototype is functional and scans all current mock records, including intentional mismatch scenarios. | -| Mock data foundation (9 worker records) | WIS-007, WIS-017 | 🟢 Green | Dataset includes valid hierarchy records and one intentional mismatch for detector validation. | -| Transition to real Workday API backend | WIS-008 | 🟡 Yellow | Next milestone: replace mock-backed execution path with API token flow and secure secret handling. | -| Non-prod Workday auth and access readiness | WIS-001, WIS-002, WIS-003 | 🔴 Red | External dependency closure required before end-to-end non-prod API validation can complete. | +| Runtime modular structure (`server.py` + `lib/data.py`) | WIS-006 | 🟢 Green | Modular split is in place and supports controlled backend evolution. | +| Memory-backed worker status tool (`get_worker_status`) | WIS-009 | 🟢 Green | Returns structured allowlist-oriented worker payloads from deterministic fixtures. | +| Manager lookup tool (`get_worker_manager`) | WIS-011, WIS-017 prep | 🟢 Green | Resolves valid, missing-manager, and unresolved-manager scenarios. | +| Manager mismatch detector (`scan_manager_mismatches`) | WIS-017 | 🟢 Green | Functional prototype scans full mock set and reports unresolved manager links. | +| API token flow and real Workday backend | WIS-008 | 🟡 Yellow | Design path is clear; implementation still pending non-prod credentials and auth closure. | +| Non-prod auth/access unblockers | WIS-001 to WIS-003 | 🔴 Red | External decisions and access provisioning remain gate conditions for API-mode validation. | ## Discipline drives quality | Engineering discipline pillar | Current state | Evidence | | --- | --- | --- | -| Type hinting discipline | 🟢 Green | Function signatures and return contracts in [Workday/workday-mcp/server.py](Workday/workday-mcp/server.py) and typed mock map in [Workday/workday-mcp/lib/data.py](Workday/workday-mcp/lib/data.py). | -| Pylance quality gate | 🟢 Green | Current implementation maintains zero known Pylance errors in active Workday-MCP runtime files. | -| Modular structure discipline | 🟢 Green | Separation of orchestration (`server.py`) and dataset/backend data layer (`lib/data.py`) enables controlled evolution to API mode. | -| Traceability discipline | 🟢 Green | WIS IDs embedded in docstrings and aligned with sprint board/backlog artifacts. | +| Type hinting discipline | 🟢 Green | Typed return contracts and strongly typed mock map are implemented in runtime modules. | +| Pylance quality gate | 🟢 Green | Current Workday runtime implementation is tracking zero known Pylance errors. | +| Modular architecture discipline | 🟢 Green | Orchestration and data layers are separated for maintainability and backend swap readiness. | +| Traceability discipline | 🟢 Green | WIS IDs are embedded in runtime docstrings and aligned with sprint planning artifacts. | -## Current sprint alignment (WIS roadmap) +## Sprint alignment (WIS roadmap) -| Workstream | Primary IDs | Status | Outcome target | +| Workstream | WIS IDs | Status | Execution posture | | --- | --- | --- | --- | -| Core read tooling stabilization | WIS-006 to WIS-011 | 🟡 Yellow | Preserve schema stability while preparing backend transition to real API calls. | -| Mismatch detection execution | WIS-014 to WIS-018 | 🟡 Yellow | WIS-017 manager mismatch detector is prototyped and functional; remaining categories continue in sequence. | -| Automation and reporting | WIS-019 to WIS-026 | 🔴 Red | Daily/weekly flow automation and KPI reporting start after API-path readiness and detector completion. | +| Unblockers and access readiness | WIS-001 to WIS-005 | 🔴 Red | Pre-implementation dependencies are defined but not yet closed. | +| Core Workday MCP buildout | WIS-006 to WIS-012 | 🟡 Yellow | Modular and memory-backed foundation is live; API/auth and resilience controls are next. | +| Correlation and mismatch expansion | WIS-013 to WIS-018 | 🟡 Yellow | WIS-017 manager mismatch path is prototyped; remaining mismatch categories are queued. | +| Automation, reporting, remediation | WIS-019 to WIS-030 | 🔴 Red | Flow automation, KPI instrumentation, and cutover remain roadmap backlog. | -## Recent activity +## Recent activity (from git history) -- Completed modular architecture migration from single-file runtime to - `server.py` + `lib/data.py`. -- Implemented and validated three operational MCP tools: - `get_worker_status`, `get_worker_manager`, and `scan_manager_mismatches`. -- Confirmed WIS-017 prototype behavior against 9 mock worker records, - including intentional manager mismatch coverage. -- Established next delivery focus on WIS-008 (mock-to-real Workday API - transition). +- Added local development quick-start and operational startup guidance. +- Added formalized README update prompt for repeatable status refreshes. +- Refined Workday runtime modular structure and validated three core tools. +- Completed type-hint quality refinements consistent with Pylance discipline. ## Next milestone focus | Milestone | ID | Status | Exit criteria | | --- | --- | --- | --- | -| Mock-to-API transition | WIS-008 | 🟡 Yellow | Obtain non-prod credentials, complete secure token flow, execute first API-backed read tool in runtime path. | +| Mock-to-API transition | WIS-008 | 🟡 Yellow | Non-prod credentials approved, secure token flow operational, first API-backed read call validated. | -## Local Development Quick-Start +## Local development quick-start -### 1. Activate Environment +### 1. Activate environment -`source .venv/Scripts/activate` +```bash +source .venv/Scripts/activate +``` -### 2. Launch Inspector +### 2. Launch inspector -`npx @modelcontextprotocol/inspector python server.py` +```bash +npx @modelcontextprotocol/inspector python server.py +``` -### 3. Port Cleanup (If Blocked) +### 3. Port cleanup (if blocked) -- **Proxy (6277):** `taskkill //F //IM node.exe` -- **Inspector (6274):** `taskkill //F //IM node.exe` +- Proxy (6277): `taskkill //F //IM node.exe` +- Inspector (6274): `taskkill //F //IM node.exe` ## Reference documents