Skip to content

Research panel + roadmap; implement top items#7

Merged
ChelseaKR merged 3 commits into
mainfrom
research-panel-and-roadmap
Jul 12, 2026
Merged

Research panel + roadmap; implement top items#7
ChelseaKR merged 3 commits into
mainfrom
research-panel-and-roadmap

Conversation

@ChelseaKR

Copy link
Copy Markdown
Owner

Summary

Adds a synthetic user-research panel and a cited research roadmap, and implements the highest-leverage self-contained items from that roadmap.

  • docs/USER-RESEARCH.md — synthetic stakeholder panel covering the full cast (users in varied situations, the people who buy/govern/fund, independent auditors, adversaries where relevant, and the owner). Clearly labelled synthetic; every "values today" maps to a feature that actually exists.
  • docs/RESEARCH-ROADMAP.md — remediation + expansion backlogs (ID · personas · priority · effort · evidence), Now/Next/Later sequencing tied to the existing roadmap, a persona→findings traceability matrix, cited external evidence, and an "Implementation status — 2026-06-30" record of what shipped in this PR.

Verification

The repo's own gate (make verify / equivalent) was re-run locally and is green for the implemented code. Hard guardrails were respected; human/key/infra-gated roadmap items were deliberately deferred.

Note: GitHub Actions CI is currently blocked at the account billing level, so the checks on this PR may not run until that's resolved — the diff was verified locally.

🤖 Generated with Claude Code

@ChelseaKR

Copy link
Copy Markdown
Owner Author

Review verdict — 2026-07-09: READY TO MERGE (verified locally; CI billing-blocked)

Adversarial review of the full diff vs main, plus merge-readiness work pushed to this branch:

What was pushed (2 commits):

  1. 200eebe — merged current main into this branch (no force-push). Conflicts resolved: app/server.py (kept main's post-Standards-conformance remediation (2026-07-05) #34 module-level add_api_route structure; threaded this PR's hide_sensitive query param into the module-level _dashboard/_load_view); docs/audits/coverage.xml + dashboard.html regenerated, never text-merged. app/render.py auto-merge verified semantically: Standards-conformance remediation (2026-07-05) #34's explicit Canvas/CanvasText contrast CSS and this PR's per-descriptor provenance table both present.
  2. e945a94 — honesty fix: the fetch-etiquette section claimed the whole policy was "enforced by etiquette_headers + ResponseCache", but robots.txt honouring and 429/5xx backoff are not implemented in any client (live clients are pragma: no cover network paths). The doc/docstrings now distinguish code-enforced rules (User-Agent, public-metadata-only, caching, host allowlist) from committed-policy-pending-code (robots, backoff — lands with FIX-01 + PR Add recorded-cassette contract tests for live network clients #27 cassettes). docs/ethical-book-data-sources.md regenerated from to_markdown().

Review findings (all clean):

  • Provenance posture holds: DescriptorProvenance only surfaces Source data already on each ThemeTag — nothing inferred anywhere; sensitive flags derive from the published, auditable DIMENSIONS.
  • Privacy: hide_sensitive can only add aggregation over the configured default (config.hide_sensitive_descriptors or hide_sensitive) — fail-safe direction; aggregated row keeps coarse counts + unioned source refs, granular identity labels redacted from lens labels and theme breakdown alike; redacted page asserted fully a11y-clean in tests.
  • Read-only ingest invariants untouched (no ingest-path changes).
  • a11y gate integrity: pa11y remains genuinely blocking; sensitive marker is text, not colour-only; new tables have proper caption/scope.
  • Research docs are honestly labelled synthetic (warning block, "hypothesis to validate, not a finding") — consistent with the roadmap's honesty note.
  • Tests: 11 new, meaningful (torn coverage of provenance union, aggregation, redaction, config flag, etiquette headers, compliance cards).

Local gate evidence (CI is billing-blocked account-wide — local runs are the review gate for this repo): make verify green end-to-end on the merged branch — ruff format+check + marker-hygiene, mypy --strict, 210 tests passed @ 96.67% branch coverage, pip-audit + gitleaks (0 leaks) + osv-scanner (0 vulns), static a11y checker + pa11y/axe (0 violations), offline eval green.

Merging this also lands F1/F2 essentially for free and fixes the portfolio index's dangling link to docs/RESEARCH-ROADMAP.md (roadmap §7 Now-3).

🤖 Generated with Claude Code

ChelseaKR added a commit that referenced this pull request Jul 9, 2026
Review finding on FIX-09: KNOWN_STACKS_ENV is a hand-maintained allowlist,
so the moment a new STACKS_* variable ships (e.g. PR #7's
STACKS_HIDE_SENSITIVE), 'stacks doctor' would false-flag the legitimate
variable as a typo — the exact failure mode the allowlist exists to
prevent. New test scans the quoted STACKS_* literals in app/ingest/
recommender source and asserts set-equality with KNOWN_STACKS_ENV, so the
drift becomes a red test instead of a silent lie. Artifacts regenerated.

make verify green: 204 tests @ 96.67% cov, pa11y 0, eval green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ChelseaKR and others added 2 commits July 9, 2026 17:07
Adds two research deliverables and implements the highest-leverage,
self-contained items from the roadmap:

- docs/USER-RESEARCH.md   — synthetic stakeholder panel (clearly labelled
  synthetic; not evidence of demand; every "values today" maps to a real feature)
- docs/RESEARCH-ROADMAP.md — cited, triaged roadmap (remediation + expansion
  backlogs, sequencing, persona traceability, external evidence)

See the "Implementation status - 2026-06-30" record in docs/RESEARCH-ROADMAP.md
(or the inline "Implemented" annotations) for exactly what shipped and the
local verification result. Human/key/infra-gated items were deferred, not faked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The fetch-etiquette section claimed the whole policy was 'enforced by
etiquette_headers + ResponseCache'. True for User-Agent, public-metadata-
only, caching, and the host allowlist — but robots.txt honouring and
429/5xx backoff are not implemented in any client yet (the live clients
are pragma: no cover network paths; backoff/robots are planned with the
FIX-01 candidate pipeline + PR #27 cassettes). The compliance doc now
distinguishes enforced-in-code rules from committed-policy-pending-code,
matching the repo's no-overclaiming posture. docs/ethical-book-data-
sources.md regenerated from to_markdown(); coverage.xml regenerated.

make verify green: 210 tests, 96.67% branch coverage, pa11y 0, eval green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ChelseaKR
ChelseaKR force-pushed the research-panel-and-roadmap branch from e945a94 to 7018e00 Compare July 10, 2026 00:07
@ChelseaKR

Copy link
Copy Markdown
Owner Author

Rebased onto current `main` (resolved conflicts in `app/server.py` — kept main's module-level route-handler refactor with `/livez` `/version` `/readyz`, and re-applied this PR's `hide_sensitive` query-param plumbing on top of it — plus a generated-file conflict in `docs/audits/coverage.xml`, resolved by taking main's copy since it's a build artifact) and force-pushed.

Both CI checks (`ci` / `verify` and `standards`) are failing repo-wide right now, completing in ~3s with zero steps executed — this matches every other open PR in the queue as of this run, so it's an infrastructure-level failure (consistent with the account-billing block on GitHub Actions mentioned in this PR's description), not something caused by this PR's diff. Not merging until that's resolved; will need a maintainer to fix Actions billing/runner availability before any PR here can go green.

@ChelseaKR

Copy link
Copy Markdown
Owner Author

Automated merge pass: unable to proceed. Both required checks (standards, verify) failed to even start — GitHub Actions is blocked account-wide with: "The job was not started because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings." This branch is otherwise up to date with main and mergeable, but CI cannot run at all until the GitHub billing/spending-limit issue is resolved. No code review or merge was attempted since there's no green CI to gate on. Please fix billing, then re-run checks (gh run rerun or a new push) to unblock this PR.

ChelseaKR added a commit that referenced this pull request Jul 10, 2026
Review finding on FIX-09: KNOWN_STACKS_ENV is a hand-maintained allowlist,
so the moment a new STACKS_* variable ships (e.g. PR #7's
STACKS_HIDE_SENSITIVE), 'stacks doctor' would false-flag the legitimate
variable as a typo — the exact failure mode the allowlist exists to
prevent. New test scans the quoted STACKS_* literals in app/ingest/
recommender source and asserts set-equality with KNOWN_STACKS_ENV, so the
drift becomes a red test instead of a silent lie. Artifacts regenerated.

make verify green: 204 tests @ 96.67% cov, pa11y 0, eval green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@ChelseaKR
ChelseaKR merged commit c475027 into main Jul 12, 2026
5 checks passed
@ChelseaKR
ChelseaKR deleted the research-panel-and-roadmap branch July 12, 2026 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants