93 Commits

Author SHA1 Message Date
458264268e Uploaded 'claude.md'
docs: add CLAUDE.md for AI assistant onboarding

Adds a CLAUDE.md at the repo root documenting project purpose, directory
layout, setup, run/test commands, the shard registration pattern,
canonical schema conventions, SOC 2 audit middleware behavior, shard
status, and branching guidelines.
2026-05-30 07:24:38 -04:00
61041d0c3e Uploaded 'Agentic design intent'
This document exists to provide context for any developer, AI assistant, or future maintainer working on this code base. It captures the architectural reasoning behind the project's design choices so that intelligence can be added at the right layer, in the right way, at the right time.

The document was written and based off a personal project (homelab-registry-mcp) but the knowledge should serve as guidance as Nexus reaches a production-ready state.
2026-05-29 13:39:46 -04:00
408a13f030 updated readme
updated to include blurbs for ALL current shards
2026-05-14 16:33:22 -04:00
7f0ac22b78 enriched readme
enriched opening sections of readme with more details, more honesty, and a linkedin url

Signed-off-by: nathan <nathan@castaldifamily.com>
2026-05-14 16:10:52 -04:00
30777c6237 added "Why This Exists" section
Signed-off-by: nathan <nathan@castaldifamily.com>
2026-05-14 15:47:43 -04:00
Nathan Castaldi
af147a6bc5
feat: enrich Workday mock data to REST API v6 shape (#6)
WORKDAY_WORKERS (9 workers, was 8):
- Add v6 fields to every worker: firstName, lastName, legalName,
  preferredName, primaryWorkPhone, effectiveDate, employeeID,
  primaryJob.manager ref, supervisoryOrganization, costCenter
- Add WORKDAY_WORKERS_BY_ID lookup index
- Add Taylor Brooks (WD-EMP-1009, Terminated) — new highest-severity drift

AD_USERS (9 users, was 7):
- Add Henry Park (EMP-1008, disabled/514) — new hire not yet provisioned
- Add Taylor Brooks (EMP-1009, enabled/512) — terminated but AD still active
- Seed Grace Lee title drift: AD 'Human Resources Director' vs Workday 'HR Director'
- Seed Frank Davis dept drift: AD 'Information Technology' vs Workday 'IT Operations'
- Normalize Emma/Grace AD dept to 'Human Resources' (remove unintentional mismatch)

WORKDAY_WORKERS (Emma Wilson):
- Set legalName='Emma Thompson' (name change) — triggers scan_name_variance

drift_detection.py:
- Add _build_workers_from_mock_data() — bridges WORKDAY_WORKERS + AD_USERS
  into the flat worker schema the scan functions consume
- MOCK_WORKERS_FROM_MOCK_DATA: built at import time; default for all scans
- Refactor all 4 scan functions with optional workers= param (default=None
  uses MOCK_WORKERS_FROM_MOCK_DATA; legacy MOCK_WORKERS constant preserved)

Scan results (USE_MOCK=true):
  scan_status_reconciliation  1 HIGH   (Taylor Brooks — terminated/enabled)
  scan_job_title_mismatches   2 MEDIUM (Bob, Grace)
  scan_department_drift       2 MEDIUM (Carol, Frank)
  scan_name_variance          1 LOW    (Emma — name change not synced to AD)

Refs: feat/enrich-workday-mock-data | Q2 live-data integration prep
2026-04-16 18:55:39 -04:00
Nathan Castaldi
63c1255420 feat: add contributing guidelines to establish intentional Git workflow 2026-04-16 09:07:20 -04:00
Nathan Castaldi
989807fa35 feat(github): add rebase guidance prompt for better collaboration 2026-04-16 08:55:00 -04:00
Nathan Castaldi
e7d986a3c5 feat: add functionality to list disabled AD accounts and update related API 2026-04-15 17:52:37 -04:00
Nathan Castaldi
275d69cd31 refactor: generalize prompt builder for LLM optimization by replacing GPT-5 references with dynamic user input 2026-04-15 17:51:25 -04:00
Nathan Castaldi
4539653d79 feat: add AD user groups retrieval function to identity shard 2026-04-15 17:30:11 -04:00
Nathan Castaldi
a4c09bd43d docs(history): add session snapshot for 2026-04-15 part 2" -m "- finalize CanonicalUser contract enforcement (extra=forbid)
- document production-correct AD dual-account and privileged OU handling
- record policy-aware identity confidence implementation status
- capture explainability improvements in identity output semantics
- note Entra admin-consent as external blocker with clean handoff next steps
2026-04-15 15:26:18 -04:00
Nathan Castaldi
ca1256658f
feat: implement identity confidence evaluation and privileged account check (#5) 2026-04-15 15:05:26 -04:00
Nathan Castaldi
7e74d19ba7 fix: refine CanonicalUser model by removing unnecessary newline and simplifying source_system field definition 2026-04-15 14:41:15 -04:00
Nathan Castaldi
88089d712c fix: change username field in CanonicalUser to required for better data integrity 2026-04-15 14:37:19 -04:00
Nathan Castaldi
db3b49624c fix: update source_system fields to use Literal types for stricter validation 2026-04-15 14:36:17 -04:00
Nathan Castaldi
a5ad2bca11 feat: add plan for repository naming normalization and phased rename strategy 2026-04-15 14:11:46 -04:00
Nathan Castaldi
6bf5d8dd05
fix(ad): normalize ADUserAdapter to snake_case contract (#4)
- ad_adapter.py: emit snake_case keys from PS queries and surface
  email via the `mail` attribute in both get_user and search paths
- adapters.py: update ADUserAdapter.to_canonical to consume
  normalized keys (e.g. `username`, `last_logon_utc`, `ou`) instead
  of raw LDAP names (sAMAccountName, lastLogonTimestamp, dn)
- Resolves field-name alignment tech debt noted in SESSION_SNAPSHOT_2026-04-15
2026-04-15 13:29:04 -04:00
Nathan Castaldi
f6cfd17e30 docs(ops): add session snapshot for 2026-04-15
- Resolved 7 Pylance errors in identity shard (async/to_thread misuse, missing AD adapter methods)
- Remapped search_users, get_stale_accounts, get_disabled_accounts, get_user_by_email call sites
- Added structured logging to identity shard
- Verified 0 diagnostics and 19/19 unit tests passing
- Live mock validation: status reconciliation, disabled accounts, audit log queries
- Deferred: WIS-018 (get_groups backend method), field-name alignment audit
2026-04-15 10:57:08 -04:00
Nathan Castaldi
f4ec8b1d9a
feat: implement AD backend aliases and fix identity shard async calls (#3)
* docs: add comprehensive Nexus MCP test cases for identity shards

* fix: enhance Active Directory user retrieval methods and logging
2026-04-15 10:44:58 -04:00
Nathan Castaldi
0d5c921a94 fix: update Active Directory adapter to use ActiveDirectoryIdentityBackend 2026-04-15 09:11:58 -04:00
Nathan Castaldi
7fb1231f29 fix: correct agent designation in code review prompt 2026-04-15 08:36:04 -04:00
Nathan Castaldi
ce3fe0de6b docs: update title case in demo and setup guide 2026-04-15 08:25:32 -04:00
Nathan Castaldi
de3a780ecf docs: update README to remove outdated status page and improve clarity 2026-04-15 08:25:05 -04:00
Nathan Castaldi
c3754d9c8e docs: remove outdated tools reference section from README 2026-04-15 08:11:50 -04:00
Nathan Castaldi
d6e93c976a Merge branch 'main' of https://github.com/Castn1_Wheels/mcp_servers 2026-04-14 17:12:31 -04:00
Nathan Castaldi
86187a8acd docs(ops): add session snapshot for 2026-04-14
- Document full repo restructure: DEMO_GUIDE, TOOL_INVENTORY promoted to root
- Capture README overhaul, reports/ folder consolidation, and work item register creation
- Record prompt model alignment to claude-sonnet-4.6 and enterprise .gitignore hardening
- Note outstanding: git pull required for dependabot.yml, .venv bash activation failure, unmerged resilience branches
2026-04-14 17:12:27 -04:00
Nathan Castaldi
7d0c114c4d
Create dependabot.yml 2026-04-14 16:00:25 -04:00
bd25bf7dbb chore: apply enterprise gitignore and re-index project structure 2026-04-14 15:54:54 -04:00
f408203b44 docs: update README and DEMO_GUIDE links for improved navigation and clarity 2026-04-14 15:16:36 -04:00
dec6f4d2ff Refactor documentation: Remove outdated README and Tool Inventory, add comprehensive DEMO_GUIDE and new Tool Inventory file 2026-04-14 15:14:17 -04:00
f19fcc8f0b docs(docs): consolidate setup guide into DEMO_GUIDE
- Merge all content from Local-Setup.md into DEMO_GUIDE.md:
  installation, venv activation, .env config, feature flags,
  Claude Desktop integration, mock drift scenarios, SOC 2 audit
  logging, troubleshooting, and dev workflow
- Delete Local-Setup.md (now redundant)
- Correct stale tool count: 48 → 50 (verified from @mcp.tool() grep)
- Fix audit tool names: replaced removed audit_user_drift references
  with current scan_* tool names
- Add working-directory callout (scripts require nexus-mcp/ as cwd)

Continues doc reorganization from SESSION_SNAPSHOT_2026-04-13_2
2026-04-14 15:08:43 -04:00
f040ac2d07 feat(docs): add comprehensive documentation for Nexus work item register, read-only verification, resilience features, and test validation report
- Created `nexus-work-item-register.md` to establish a canonical registry for NEXUS-XXX work items, including shard assignments and a full work item backlog.
- Added `READ_ONLY_VERIFICATION.md` detailing the results of a security audit confirming zero write capabilities across integrated systems.
- Introduced `RESILIENCE.md` outlining the new enterprise system resilience feature, including automatic retry logic, circuit breaker pattern, and graceful degradation strategies.
- Developed `TEST_VALIDATION_REPORT.md` summarizing the successful rebuild of the Nexus MCP server with full audit shard functionality and comprehensive test results.
2026-04-14 15:00:15 -04:00
e6e4810e47 feat(docs): update tool inventory and add resilience documentation
- Updated Nexus MCP Tool Inventory with new NEXUS references and improved tool descriptions.
- Added comprehensive README.md for Nexus MCP, detailing architecture, folder structure, and tool references.
- Introduced RESILIENCE.md to document the new enterprise system resilience features, including automatic retry logic and circuit breaker patterns.
- Created TEST_VALIDATION_REPORT.md summarizing test results and server capabilities post-rebuild.
- Established a canonical work item register (nexus-work-item-register.md) to track NEXUS-XXX work items and their statuses.
- Updated scripts to reflect changes in work item references from WIS to NEXUS.
2026-04-14 14:53:02 -04:00
5c90bdbd04 chore(prompts): align model tags and add report plan
- Update prompt model frontmatter in code-review and feature-add prompts to Claude Sonnet 4.6 (copilot)
- Add a save_report implementation plan prompt to support next-session delivery and clearer handoff context
2026-04-14 14:33:20 -04:00
8727257605 chore(prompts): align model tags and add report plan
- Update prompt model frontmatter in code-review and feature-add prompts to Claude Sonnet 4.6 (copilot)
- Add a save_report implementation plan prompt to support next-session delivery and clearer handoff context
2026-04-14 12:06:56 -04:00
4f3be4cb4c feat: add code review prompt for MCP server analysis 2026-04-14 10:39:23 -04:00
2d61165f46 docs: add Read-Only Security Verification Report 2026-04-13 16:09:09 -04:00
aa0ada8366 finalized snapshot for the day 2026-04-13 15:08:02 -04:00
3e779a5273 docs(repo): reorganize setup docs and drop MCP probes
- Move setup docs into documentation/ and remove legacy MCP troubleshooting content and ad hoc probe files
- Support the session goal of a cleaner, gated workflow with clearer restart context and less maintenance noise
2026-04-13 14:49:23 -04:00
e7cc0385b7 chore(release): bump version to 0.1.3 2026-04-13 14:41:10 -04:00
7701fcd479 chore(ci): remove obsolete GitHub Actions workflows 2026-04-13 14:37:29 -04:00
27f6a543be version bump 2026-04-13 14:34:50 -04:00
fbb90e2500 feat(docs): automate managed README status page
- Add scripts/update_readme_status.py to generate a deterministic status block, enforce traffic-light shard tables, and validate/fix internal links
- Refactor nexus-mcp/README.md into a managed status layout with standardized WIS traceability and Discipline Drives Quality sections
- Aligns with session goals for operational readiness and disciplined documentation as Nexus-MCP scales

Ref: SESSION_SNAPSHOT_2026-04-13
2026-04-13 14:33:14 -04:00
eb209eedc4 chore(release): bump version to 0.1.1 2026-04-13 14:04:02 -04:00
f5a02ae790 chore(git): untrack python build artifacts
- Remove generated package outputs from nexus-mcp/dist/*.whl and *.tar.gz
- Remove generated metadata from nexus-mcp/src/nexus_mcp.egg-info/*
- Keep repository source-only and rely on local/CI builds for artifacts
2026-04-13 13:40:13 -04:00
dcd562c269 Added "Build artifacts" section 2026-04-13 13:38:25 -04:00
c2338ecbb9 build(nexus-mcp): refresh dist and test metadata
- Update nexus-mcp/pyproject.toml to register the integration pytest marker and keep test execution policy explicit
- Regenerate package metadata and distribution artifacts in nexus-mcp/src/nexus_mcp.egg-info/* and nexus-mcp/dist/*

Ref: Session Snapshot 2026-04-13 — close out pending pytest validation hygiene
2026-04-13 13:35:41 -04:00
cc00efc4c1 fix(ci): resolve test collection and async failures
- Add conftest.py to inject lib/ onto sys.path, fixing
  ModuleNotFoundError on identity test collection
- Add pytest-asyncio to CI install step and pyproject.toml
  test extras; set asyncio_mode=auto to resolve 31 async
  test failures flagged in session tech debt backlog
- All 35 tests now pass; 8 skipped (live API, expected)

Ref: Session Snapshot 2026-04-13 — "Pytest validation incomplete"
2026-04-13 13:22:00 -04:00
25d8af869f docs: Update README with enhanced shard status details and async execution improvements 2026-04-13 13:12:55 -04:00