Skip to content

docs(user-stories): add master CV onboarding stories (GAP-25)#99

Open
warnes wants to merge 3 commits intodevelfrom
feat/master-cv-onboarding-user-stories
Open

docs(user-stories): add master CV onboarding stories (GAP-25)#99
warnes wants to merge 3 commits intodevelfrom
feat/master-cv-onboarding-user-stories

Conversation

@warnes
Copy link
Copy Markdown
Contributor

@warnes warnes commented Apr 20, 2026

Summary

Adds user stories and a gap entry for the documented but unspecified workflow of creating Master_CV_Data.json from scratch using external source materials. This addresses the onboarding gap previously noted in specstory history reviews: "There is no story for creating master CV from scratch for a first-time user."

New file

tasks/user-story-master-cv-onboarding.md

Twelve stories (US-O1–US-O12) across three persona layers:

Applicant / first-time user:

  • US-O1 — Guided detection and path selection when no master CV exists
  • US-O2 — Import from LinkedIn data export (ZIP with CSV files)
  • US-O3 — Import from existing resume or CV document (PDF/DOCX via LLM extraction)
  • US-O4 — Import publications from BibTeX file, Google Scholar URL, or pasted citation text
  • US-O5 — Import projects and skills from a public GitHub profile
  • US-O6 — Merge multiple sources into a unified master CV with conflict resolution
  • US-O7 — Manual entry fallback via a guided multi-step form wizard
  • US-O8 — Review and confirm all imported data before any write to disk

UI/UX expert:

  • US-O9 — Evaluate onboarding source selection and import flow clarity
  • US-O10 — Evaluate import error and gap handling (partial success, confidence signals, LLM latency)

Master CV curator:

  • US-O11 — Post-import completeness check (section-by-section readiness summary)
  • US-O12 — Conflict resolution when merging overlapping data from multiple sources

Updated files

File Change
tasks/user-story-first-time-user.md Add US-F4 — precondition detection and guided onboarding entry point
tasks/gaps.md Add GAP-25 — Master CV Onboarding (HIGH severity, OPEN)
tasks/workflow-review-expanded-personas.md Register new story file in the story-file index

Relationship to existing stories / gaps

  • Complements US-A10 (update path) and GAP-01 (NL update + document ingestion) — these are distinct. US-A10 assumes master data exists; this PR covers the path to get there.
  • Extends US-F1–F3 (first-time user orientation) with the master CV creation precondition.
  • Extends US-M4 (publication curation) with an initial import path.
  • The GitHub and Google Scholar paths are new — not mentioned in any prior story or spec.

Testing / review checklist

  • Story IDs (US-O1–US-O12, US-F4, GAP-25) do not collide with existing IDs
  • All stories follow the established format (persona, related gap, steps, acceptance criteria, failure modes)
  • GAP-25 is consistent with the existing gap severity scale and description pattern
  • workflow-review-expanded-personas.md story file list is complete

warnes added 3 commits April 20, 2026 17:20
Add a new user-story file and related updates covering the initial
creation of Master_CV_Data.json from external source materials.
This closes the documented onboarding gap (previously noted in the
specstory review as "no story for creating master CV from scratch").

New file:
- tasks/user-story-master-cv-onboarding.md
  Twelve stories (US-O1–US-O12) across three persona layers:
  - Applicant / first-time user: guided path detection (US-O1),
    LinkedIn data export import (US-O2), resume/CV document import
    (US-O3), BibTeX / Google Scholar publications import (US-O4),
    GitHub profile import (US-O5), multi-source merge (US-O6),
    manual guided-form fallback (US-O7), review-and-confirm gate
    (US-O8).
  - UI/UX expert: source selection and import flow clarity (US-O9),
    error and gap handling (US-O10).
  - Master CV curator: post-import completeness check (US-O11),
    conflict resolution when merging sources (US-O12).

Updated files:
- tasks/user-story-first-time-user.md: add US-F4 covering the
  precondition check and onboarding entry point for first-time users
  who have no existing master CV file.
- tasks/gaps.md: add GAP-25 documenting the onboarding gap, its
  severity (HIGH), affected stories, and recommended resolution.
- tasks/workflow-review-expanded-personas.md: register the new story
  file in the story-file index.
…nput

Add five additional input paths to the resume/CV document import story:
- Plain text file upload (.txt)
- Markdown file upload (.md) — heading structure used as section hints
- HTML file upload (.html/.htm) — tags stripped; heading elements used as
  section-boundary hints
- Pasted text — any format accepted (plain, Markdown, or lightly formatted
  HTML copy-paste); auto-detected and tag-stripped where needed
- The paste path is presented as a first-class equal-weight option alongside
  file upload (not a secondary fallback)

Expand acceptance criteria and failure modes accordingly:
- HTML tag-stripping required before LLM prompt (prevents script/style
  tag pollution and prompt injection via malicious HTML)
- Pasted HTML auto-detected and stripped rather than passed raw to LLM
- Markdown structural markers preserv- Markdown structural markers preserv- Markdown structural markers preserv- Markdown structural markers preserv- Markdown structural markers preserv- Markdown structural markers preserv- ripti- Markdown structural markers preserv- Markdset.
- Fix integration test: read textarea value via .value not .textContent,
  resolving the "buildSummaryFocusSection did not use session summary" failure
- Upgrade CodeQL Action v3 -> v4 across both workflow files
- Upgrade actions/setup-python v4 -> v5 across both workflow files
- Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true workflow env to silence
  Node.js 20 deprecation warnings on cache/checkout/setup-node actions
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.

1 participant