diff --git a/README.md b/README.md index aee78ed..ffcce0b 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,14 @@ To create the live fictional Acme content, use this bounded manual inventory: No code path creates, edits, publishes, searches, crawls, or deletes Confluence content. +The bounded Acme environment was live-validated on August 4, 2026 without committing its +credentials or page ID. The explicit refresh imported the Manager Travel Approval Guide and a +second refresh returned `already_current`; the external link and responsive catalog detail were +verified with zero browser console errors. The credential used for that local check reported +broader page operations than view-only access. That broader credential is an accepted limitation +for the current demo environment rather than a PR B blocker. Application code remains read-only +regardless: the adapter implements only the two GET requests above. + Stop the stack while preserving database data: ```bash diff --git a/docs/demo-scenario.md b/docs/demo-scenario.md index 08d8670..a36d0bb 100644 --- a/docs/demo-scenario.md +++ b/docs/demo-scenario.md @@ -947,8 +947,8 @@ the first delivery may have succeeded. ## Milestone 7 PR B Read-Only Confluence Identity Extension The Manager Travel Approval Guide retains the stable ChangeOps identity -`document-manager-travel-approval-guide`. When a reviewer has manually configured a real Acme -Confluence page and explicitly refreshed it, the document detail additionally shows: +`document-manager-travel-approval-guide`. The bounded Acme demo environment was live-validated on +August 4, 2026: after an explicit refresh, the document detail shows: - source provider `Confluence Cloud`; - the validated external page ID; @@ -957,10 +957,16 @@ Confluence page and explicitly refreshed it, the document detail additionally sh - source-updated and last-refreshed timestamps; - an **Open in Confluence** link. -The repository and automated demo remain honest when no live page exists: the detail shows that -Confluence metadata has not been imported, while fixture-backed tests prove the full boundary. -`make demo-reset` preserves a successful import. A failed later refresh leaves the last-known-good -metadata visible with the precise failure state. +Credentials and the real page ID remain environment-only. The repository and automated demo stay +honest when that configuration is absent: the detail shows that Confluence metadata has not been +imported, while fixture-backed tests prove the full boundary. `make demo-reset` preserves a +successful import. A failed later refresh leaves the last-known-good metadata visible with the +precise failure state. + +The live walkthrough confirmed an idempotent `already_current` refresh, the expected external link, +responsive presentation, and zero browser console errors. The adapter itself remains read-only, +but the currently configured local Atlassian credential reports page update and delete operations; +the broader credential is an explicitly accepted limitation for the current demo environment. Confluence is authoritative only for the imported page metadata. ChangeOps remains authoritative for its internal document identity, curated typed policy relationships, assessment behavior, diff --git a/docs/milestone-7-enterprise-knowledge-catalog.md b/docs/milestone-7-enterprise-knowledge-catalog.md index 5eed352..a0de244 100644 --- a/docs/milestone-7-enterprise-knowledge-catalog.md +++ b/docs/milestone-7-enterprise-knowledge-catalog.md @@ -2,8 +2,10 @@ ## Status -PR A is merged. PR B is implemented in code with fixture-backed verification; creating and -configuring the real Acme Confluence page remains the documented manual environment step. PR C +PR A is merged. PR B is implemented with fixture-backed verification and was live-validated +against the bounded Acme Confluence knowledge base on August 4, 2026. Live credentials and page +identifiers remain environment-only. The current local credential is broader than least privilege +and is an explicitly accepted current-environment limitation, not a PR B blocker. PR C relationship-origin provenance remains deferred. This document is based on repository `main` at commit `14cfb5d` and on the implementation, diff --git a/docs/remaining-work-inventory.md b/docs/remaining-work-inventory.md index 44d1823..5ef8aa3 100644 --- a/docs/remaining-work-inventory.md +++ b/docs/remaining-work-inventory.md @@ -78,7 +78,7 @@ Remaining work must add a distinct product, architecture, deployment, or present ## Recommended remaining work -- [x] Narrow Confluence-backed document source integration (live Acme page setup remains manual) +- [x] Narrow Confluence-backed document source integration and live Acme page validation - [ ] Trusted relationship provenance and governance - [ ] Unified audit timeline - [ ] AWS deployment architecture decision @@ -275,15 +275,23 @@ A Jira remediation task may include a link to the relevant Confluence page. ### Completion criteria -- [ ] A small, coherent Acme Confluence knowledge base exists. -- [ ] Catalog document records link to real Confluence pages after the documented live setup. -- [ ] At least the Manager Travel Approval Guide exists as an actual page after manual setup. +- [x] A small, coherent Acme Confluence knowledge base exists. +- [x] The selected catalog document record links to its real Confluence page after live setup. +- [x] The Manager Travel Approval Guide exists as an actual page after manual setup. - [x] ChangeOps can import or resolve bounded page metadata. - [x] Imported identity is stable and idempotent. - [x] Automated tests do not require live Confluence. - [x] CI uses mocked or fixture-based provider behavior. - [x] ChangeOps never edits Confluence. +The live Acme space contains the Manager Travel Approval Guide plus bounded procedures, training, +FAQ, and policy-reference context. Only the Manager Travel Approval Guide is wired into ChangeOps. +The August 4, 2026 live walkthrough confirmed successful import, `already_current` idempotency, the +external link, responsive presentation, and zero console errors. The adapter issues only bounded +GET requests. The current local Atlassian credential nevertheless has update and delete permission, +which is an explicitly accepted limitation for the current demo environment. The operational +hardening checklist remains honest about the credential permission boundary without blocking PR B. + --- ## 3. Trusted relationship provenance @@ -551,7 +559,7 @@ Deploy the existing application reproducibly. - [ ] Demo reset cannot run against an unrecognized database. - [ ] Destructive actions are protected. - [ ] External Jira writes target only the dedicated demo project. -- [ ] Confluence access is read-only. +- [ ] Confluence credential access is restricted to read-only. - [ ] Credentials have minimal permissions. - [ ] Rate-limit and provider failures are understandable. - [ ] External calls use bounded timeouts. @@ -725,7 +733,7 @@ Jira and Confluence REST integrations alone do not automatically justify MCP. 2. [x] Inspect current catalog models and seeded relationships. 3. [x] Define a narrow Enterprise Knowledge Catalog milestone. 4. [x] Implement the read-only catalog explorer. -5. [ ] Create the bounded Acme Confluence content set using the documented manual setup. +5. [x] Create the bounded Acme Confluence content set using the documented manual setup. 6. [x] Add read-only Confluence metadata import and links. 7. [ ] Expose trusted relationship provenance. 8. [ ] Decide whether AI-proposed relationship governance adds sufficient value. diff --git a/docs/roadmap.md b/docs/roadmap.md index ebb46a4..47b7d33 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -688,7 +688,10 @@ Delivered behavior Milestone 7 PR B — Read-Only Confluence Document Identity -Status: complete in code; live Acme page creation and environment configuration remain manual. +Status: complete in code and live-validated against the environment-configured Acme Manager Travel +Approval Guide. Credentials and the page ID remain uncommitted. The current local credential is +broader than view-only access; that is an explicitly accepted environment limitation rather than a +PR B blocker. Delivered behavior diff --git a/output/playwright/m7-pr-b-manager-guide-live-1440.png b/output/playwright/m7-pr-b-manager-guide-live-1440.png new file mode 100644 index 0000000..8c4796c Binary files /dev/null and b/output/playwright/m7-pr-b-manager-guide-live-1440.png differ