--- id: SPRINT-S26.10 title: "Sprint S26.10 — Optage Code Analysis Expansion + v1.0.0 Release Compliance" version: "1.0" status: planning created: 2026-06-01 lastUpdated: 2026-06-01 author: nguyetnta8 document_type: sprint-plan sprint_id: S26.10 sprint_alias: S26.10 sprint_dates: "2026-06-01 to 2026-06-12" sprint_days: 10 methodology: sprint-planning-framework.md --- # Sprint S26.10 ## 1. Sprint Goal **Optage Code Analysis Expansion + v1.0.0 Release Compliance** — Three-priority sprint following Optage demo & training call (2026-05-29). Priority 1: Deliver Code Analysis enhancements driven by Optage feedback — scoped wiki generation for 145 AS-IS functions, XML/JSP reference extraction, and Java reflection detection to close knowledge graph gaps. Priority 2: Achieve SonarQube Quality Gate compliance across all repos to fulfill v1.0.0 release commitment and company compliance policy. Priority 3: CodeWiki on User Portal for demo/presale readiness (Optage does not use User Portal). Key deliverables (priority order): - **(P1-A) Optage Code Analysis** — Scoped wiki generation for 145-function Optage scope (S2-E10), XML+JSP reference extraction into CKG (S1-E23), Java reflection & annotation detection (S2-E11). Driven by Optage demo feedback 2026-05-29; additional feedback expected 2026-06-02 - **(P1-B) SonarQube Compliance** — All repos pass Quality Gate (no Security Hotspots, no Blocker/Critical, Duplications <3%). Required for v1.0.0 release to Optage and company compliance. DevOps sets up scan tools for DE, CP, KC - **(P1-C) Platform Features** — Admin User Provisioning (IAM-E10) eliminates manual Keycloak workaround. CodeWiki User Portal (S1-E14) — demo/presale only, not Optage production use ## 2. Sprint Context Post-release sprint following Optage v1.0.0 delivery (S26.08) and Credit Card presale demo (S26.09). On 2026-05-29 (Friday), the team demoed Metis to Optage and conducted a training/feedback session. Optage feedback directly drove the creation of three new specs: scoped wiki generation (145 AS-IS functions), multi-file-type extraction (XML/JSP references invisible in CKG), and Java reflection detection (3,327 true reflection calls + 7,700 framework dispatch calls missing from knowledge graph). Optage will send additional feedback on 2026-06-02. **Workstream A (P1-A): Optage Code Analysis Expansion** Top priority. Three specs created from Optage feedback — all targeting Code Analysis pipeline gaps that directly impact Optage's ability to use Metis for their 24M LOC Futurity Java codebase. NguyenNH25 reassigned from DE scan duties to CA/CP feature work alongside MinhNL11 and ThangLV4, broadening team coverage on CA+CP repositories so the team has multiple engineers proficient in the code analysis stack. **Workstream B (P1-B): SonarQube Compliance** Second priority. Required for v1.0.0 release commitment to Optage and company compliance policy. S26.09 completed FE lint-to-zero (10 SP) and APA BLOCKER+CRITICAL clearing (2 SP, but Quality Gate not yet met — Security Hotspots and Duplications remain). Remaining: all 11 BE/BFF services need full Quality Gate compliance (no Security Hotspots, no Blocker/Critical, Duplications <3%). DevOps must set up scan tooling for DE, CP, KC (currently missing). SCAN-FIX-DE and SCAN-FIX-DG demoted to P2 since NguyenNH25 (DE/DG owner) is reassigned to CA/CP. **Workstream C (P1-C): Platform Features** Lowest P1 priority. Admin User Provisioning (IAM-E10) removes manual Keycloak workaround for pilot onboarding. CodeWiki on User Portal (S1-E14) is for demo/presale use only — Optage does not use User Portal (they access Metis via Admin Portal and Copilot Skills). **G1 Workshop:** NguyetNTA8 + PhatMT3 present CodeWiki to G1 sales (2026-06-01, 9:00 AM). ### Carry-Overs from S26.09 | # | Story | SP | Reason | Disposition in S26.10 | |---|-------|----|--------|----------------------| | 1 | CA-IMPACT-POC | 8 | Not started — MinhNL11 absorbed by graph-per-repo partitioning + incident response | **Deferred** — no concrete customer use case yet. Revisit when customer engagement requires impact analysis | | 2 | CA-IMPACT-DESIGN | 5 | Not started — ThangLV4 absorbed by CA admin hardening + MCP-COPILOT-SKILL | **Deferred** — same rationale as CA-IMPACT-POC | | 3 | SCAN-FIX-BE (remaining) | 3 | APA portion done (2 SP); other BE repos pending | **Absorbed** — expanded into per-service SCAN-FIX stories (#3–#12) | > **Deferral decision (CA-IMPACT):** CA-IMPACT-POC and CA-IMPACT-DESIGN originated from Credit Card presale exploration (S26.09). No customer has confirmed a specific impact analysis use case — deferring until a concrete engagement requires it. This frees 13 SP of CA/CP engineer capacity for higher-priority Optage specs (Scoped Wiki, Multi-File, Reflection). > > **SCAN-FIX-BE carry-over (3 SP):** Original estimate was for "remaining BE repos." Actual scope is significantly larger per SonarQube scan results — expanded to 10 per-service stories (47 SP total). ### Planning Decisions | # | Decision | Rationale | |---|----------|-----------| | D1 | Per-service scan-fix stories (not team-wide) | Each service has different issue profiles; per-service stories enable clear ownership, QG tracking, and independent completion | | D2 | ~50% engineer effort allocated to SonarQube | PM estimate based on issue volume. Quality Gate is hard compliance requirement | | D3 | All 5 feature specs marked P1, with clear priority ordering | Scoped Wiki > Multi-File > Reflection > Provisioning > Scan Fix > CodeWiki Portal. Cut from bottom if capacity insufficient | | D4 | CA-IMPACT-POC + CA-IMPACT-DESIGN deferred | No concrete customer use case. Frees 13 SP for MinhNL11 (8 SP) and ThangLV4 (5 SP) → enables Scoped Wiki, Multi-File, Reflection | | D5 | SCAN-FIX-APA assigned to TruongTQ20 | APA still needs Quality Gate (S26.09 only cleared BLOCKER+CRITICAL). TruongTQ20 (APA backup, 83% load) absorbs APA scan, freeing ThangNQ63 (100%) for WK+KC scan + IAM-E10 provisioning | | D6 | NguyenNH25 reassigned from DE/DG scan → CA/CP features | CA features (Optage-priority) outrank SonarQube fix. NguyenNH25 joins MinhNL11 + ThangLV4 on CA/CP work — builds team depth on code analysis stack | | D7 | SCAN-FIX-DE + SCAN-FIX-DG deprioritized to P2 | NguyenNH25 moved to CA/CP. DE/DG scan deferred or picked up by ThangNQ63 if capacity allows | ## 3. Spec Readiness Check | # | Story | Theme | Initiative | Spec | Status | |---|-------|-------|------------|------|--------| | 1 | CKG-TYPES-PR | T6 | Cross | [ckg-pipeline-alignment.md](../../planning-artifacts/2-planning/specs/ckg-pipeline-alignment.md) | Ready — types.rs constants defined. BLOCKER for stories #2-7 | | 2 | COMMENT-FIELD + COMMENT-TEST | T6 | INIT-T6.1 | [comment-extraction-and-test-code-spec.md](../../planning-artifacts/2-planning/specs/comment-extraction-and-test-code-spec.md) | Ready — spec v1.2, stories 1+2 of 4 | | 3 | MULTI-FILE-XML-JSP | T6 | INIT-T6.1 | [multi-file-type-extractor-spec.md](../../planning-artifacts/2-planning/specs/multi-file-type-extractor-spec.md) | Ready — spec v1.2, 8 XML + 2 JSP patterns | | 4 | REFLECT-PATTERN + REFLECT-ANNOTATION | T6 | INIT-T6.3 | [java-reflection-and-annotation-detection-spec.md](../../planning-artifacts/2-planning/specs/java-reflection-and-annotation-detection-spec.md) | Ready — spec v1.1, stories 1+2 of 4 | | 5 | SCOPED-WIKI-API | T7 | INIT-T7.1 | [scoped-wiki-generation-spec.md](../../planning-artifacts/2-planning/specs/scoped-wiki-generation-spec.md) | Ready — spec v1.2 (updated: additive scope + adaptive tiering added post-sprint-plan). Sprint 1 scope unchanged: API + budget + seed resolution | | 6 | SCAN-FIX-* (per service) | T12 | INIT-T12.2 | S2-E05 | Ready — Quality Gate defined. DevOps setup pending for DE, CP, KC | | 7 | IAM-PROVISION | T1 | INIT-T1.2 | [admin-user-provisioning-spec.md](../../planning-artifacts/2-planning/specs/admin-user-provisioning-spec.md) | Ready — Option C pending-intent spec v1.2, adversarial-reviewed | | 8 | CODEWIKI-PORTAL | T10 | INIT-T10.3 | [codewiki-user-portal-spec.md](../../planning-artifacts/2-planning/specs/codewiki-user-portal-spec.md) | Ready — 3-layer spec (CA+UPA+UP) v1.0, code-audited | ## 4. Capacity Calculation | Engineer | Role | Sprint Days | Leave | Available Days | |----------|------|:----------:|:-----:|:--------------:| | TruongTQ20 | Frontend + BFF | 10 | 0 | 10 | | TungPT84 | Backend Architect | 10 | 0 | 10 | | NguyenNH25 | AI Engineer | 10 | 0 | 10 | | MinhNL11 | AI Engineer | 10 | 0 | 10 | | ThangNQ63 | Backend | 10 | 0 | 10 | | ThangLV4 | Tech Lead (100% eng) | 10 | 0 | 10 | **Eng-Days (SP-counted only):** 60 | Metric | Formula | SP | |--------|---------|:--:| | Commit (conservative) | 60 × 1.81 | **109** | | Target (rolling avg) | 60 × 1.97 | **118** | | Stretch (baseline) | 60 × 2.55 | **153** | > **Velocity reference:** Rolling 3-sprint avg = 1.97 SP/eng/day (S26.07: 1.97, S26.08: 2.15, S26.09: 1.81). Baseline 2.55 SP/eng/day. > > **Capacity note:** CA/CP features (Optage-priority) take precedence over SonarQube compliance. NguyenNH25 reassigned from DE/DG scan → CA/CP features to build team depth. CA-IMPACT carry-overs deferred (no customer use case). Scan fixes remain P1 for services with available engineers; DE/DG scan demoted to P2. > > **Non-SP roles:** CongNM8 (QA), PhatMT3 (BA), NguyetNTA8 (PM), LongNT144 (DevOps), TrungNB20 (DevOps). ## 5. Sprint Backlog ### Engineering Stories | # | Story | Theme | Initiative | Epic | Feature Name | SP | Assignee | Priority | |---|-------|-------|------------|------|--------------|:--:|----------|:--------:| | | **P1-A: CKG Pipeline Expansion (Optage — sequenced per [ckg-pipeline-alignment.md](../../planning-artifacts/2-planning/specs/ckg-pipeline-alignment.md))** | | | | | | | | | 1 | **CKG-TYPES-PR:** types.rs consolidation — add XML_CONFIG, JSP_VIEW, REFERENCES, ANNOTATION, ANNOTATED_WITH, INJECTS, CHANGE_MARKER, HAS_MARKER, MARKS constants. Single PR unblocking all 4 specs | T6 | INIT-T6.1 | Cross | Plugin Framework | 2 | MinhNL11 | P1 | | 2 | **COMMENT-FIELD:** Comment extraction — CommentExtractor trait + engine + registry, optage_field_extractor plugin, Shift-JIS encoding, business_label on FIELD nodes (Phase 2) | T6 | INIT-T6.1 | S1-E22 | Code Repository Scanning & Q&A | 5 | NguyenNH25 (CA) + ThangLV4 (CP) | P1 | | 3 | **COMMENT-TEST:** Test code separation — AST-based (@Test, TestCase) + path-based (src/test/) detection, is_test flag, conflict resolution (Phase 2) | T6 | INIT-T6.1 | S1-E22 | Code Repository Scanning & Q&A | 3 | NguyenNH25 | P1 | | 4 | **MULTI-FILE-XML-JSP:** XML reference extractor (8 patterns) + JSP reference extractor (import/useBean), xml_config/jsp_view CKG nodes + references edges (Phase 3.5) | T6 | INIT-T6.1 | S1-E23 | Code Repository Scanning & Q&A | 8 | ThangLV4 (CP/Rust) + NguyenNH25 (CA/Python) | P1 | | 5 | **REFLECT-PATTERN:** Reflection edge detection — Class.forName, getMethod/invoke, Futurity JBSbatCheckUtil.invoke dispatch, factory false-positive filter (Phase 2→4.5) | T6 | INIT-T6.3 | S2-E11 | Futurity Java Analysis (Optage) | 8 | ThangLV4 (CP/Rust) + NguyenNH25 (CA/Python) | P1 | | 6 | **REFLECT-ANNOTATION:** Annotation node extraction — @Stateless/@Inject/@EJB/@Entity, annotated_with edges, DI-derived injects edges (Phase 2) | T6 | INIT-T6.3 | S2-E11 | Futurity Java Analysis (Optage) | 5 | ThangLV4 (CP/Rust) + NguyenNH25 (CA/Python) | P1 | | 7 | **SCOPED-WIKI-API:** Scoped Wiki — API schema (ScopeConfig, SeedExpandRequest/Response) + budget scaling + seed resolution (Phase 6+, after all edge types available) | T7 | INIT-T7.1 | S2-E10 | Auto-Generated Code Wiki | 10 | MinhNL11 (lead) + NguyenNH25 ³ | P1 | | | **P1-B: SonarQube Compliance** | | | | | | | | | 8 | **SCAN-FIX-CB:** Fix SonarQube findings in textiq-chatbot-service — Security Hotspots, Blocker/Critical, Duplications | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 8 | TungPT84 | P1 | | 9 | **SCAN-FIX-IAM:** Fix SonarQube findings in textiq-iam | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 5 | TungPT84 | P1 | | 10 | **SCAN-FIX-MCP:** Fix SonarQube findings in textiq-mcp-server | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 3 | MinhNL11 | P1 | | 11 | **SCAN-FIX-APA:** Fix remaining SonarQube findings in textiq-admin-portal-api — Security Hotspots, Duplications (BLOCKER+CRITICAL cleared in S26.09, QG not yet met) | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 5 | TruongTQ20 | P1 | | 12 | **SCAN-FIX-UPA:** Fix SonarQube findings in textiq-user-portal-api | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 5 | TruongTQ20 | P1 | | 13 | **SCAN-FIX-WK:** Fix SonarQube findings in textiq-worker | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 3 | ThangNQ63 | P1 | | 14 | **SCAN-FIX-KC:** Fix SonarQube findings in textiq-keycloak (after DevOps setup) | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 2 | ThangNQ63 | P1 | | | **P1-C: Platform Features** | | | | | | | | | 15 | **IAM-PROVISION:** Admin User Provisioning — Keycloak Admin Client, provision endpoint, pending-intent state machine, webhook reconcile hook | T1 | INIT-T1.2 | IAM-E10 | Identity & Access Management | 8 | ThangNQ63 + TungPT84 (review) | P1 | | 16 | **CODEWIKI-CA:** CodeWiki User Portal — CA new endpoints: wiki navigation, wiki page listing, wiki search | T10 | INIT-T10.3 | S1-E14 | Enhanced Portal — Chat & Code Browser | 3 | MinhNL11 | P1 | | 17 | **CODEWIKI-UPA:** CodeWiki User Portal — UPA BFF proxy layer for CA wiki + code endpoints | T10 | INIT-T10.3 | S1-E14 | Enhanced Portal — Chat & Code Browser | 5 | TruongTQ20 | P1 | | 18 | **CODEWIKI-UP:** CodeWiki User Portal — UP frontend: repository list, wiki tab, code tab, search, chat integration | T10 | INIT-T10.3 | S1-E14 | Enhanced Portal — Chat & Code Browser | 10 | TruongTQ20 | P1 | | | **P2: Deferred SonarQube (scan after feature stabilizes)** | | | | | | | | | 19 | **SCAN-FIX-CA:** Fix SonarQube findings in textiq-code-analysis | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 5 | MinhNL11 | P2 | | 20 | **SCAN-FIX-CP:** Fix SonarQube findings in textiq-code-plugins (Rust) | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 5 | ThangLV4 | P2 | | 21 | **SCAN-FIX-DE:** Fix SonarQube findings in textiq-doc-extraction (after DevOps setup) | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 8 | ThangNQ63 | P2 | | 22 | **SCAN-FIX-DG:** Fix SonarQube findings in textiq-doc-generation | T12 | INIT-T12.2 | S2-E05 | Code Scanning & Compliance | 3 | ThangNQ63 | P2 | **Total committed (P1): 18 stories / 108 SP** | **P2 deferred: 4 stories / 21 SP** | **Grand total: 22 stories / 129 SP** > **Pipeline sequencing (mandatory — see [ckg-pipeline-alignment.md](../../planning-artifacts/2-planning/specs/ckg-pipeline-alignment.md)):** > ``` > Story #1 (types.rs PR) → unblocks ALL other CA/CP stories > Stories #2-3 (Comment) + #4 (Multi-File) → parallel, Phase 2 + 3.5 > Stories #5-6 (Reflection) → Phase 2 + 4.5, after #2-3 coordinate extractor.rs > Story #7 (Scoped Wiki) → LAST, needs all edge types from #4-6 > ``` > > ³ **SCOPED-WIKI-API** covers Sprint 1 scope from [scoped-wiki-generation-spec.md](../../planning-artifacts/2-planning/specs/scoped-wiki-generation-spec.md): API schema (2 SP) + budget scaling (3 SP) + seed resolution (5 SP) = 10 SP. Graph expansion + generator filter deferred to S26.11. MinhNL11 leads architecture; NguyenNH25 supports after completing Phase 2 stories. > > **Team depth:** NguyenNH25 builds CA+CP proficiency through stories #2-6, working alongside ThangLV4 (CP/Rust) and MinhNL11 (CA/Python architecture). Ensures multiple engineers can independently deliver CA/CP features. > > **SCAN-FIX-CA + SCAN-FIX-CP deferred to S26.11.** CA and CP repos are under heavy feature development this sprint (4 CKG specs). Fixing scan findings now would create churn — new code introduces new findings, requiring rescan and refix. Scan after feature work stabilizes in S26.11. > > **SCAN-FIX-DE + SCAN-FIX-DG also P2.** NguyenNH25 (DE/DG primary owner) reassigned to CA/CP features (Optage priority). ThangNQ63 picks up DE/DG scan if capacity allows. If not, defers to S26.11. ### Theme Coverage | Theme | Name | Stories (P1) | SP (P1) | Stories (P2) | SP (P2) | Initiatives | |-------|------|:-----------:|:------:|:-----------:|:------:|-------------| | T1 | Access Control & Governance | 1 | 8 | — | — | INIT-T1.2 | | T6 | Code Scanning & Analysis | 6 | 36 | — | — | INIT-T6.1, T6.3 | | T7 | Code Documentation & Wiki | 1 | 10 | — | — | INIT-T7.1 | | T10 | User Portal Experience | 3 | 18 | — | — | INIT-T10.3 | | T12 | Platform Infrastructure & Security | 7 | 31 | 4 | 21 | INIT-T12.2 | | | **Total** | **18** | **108** | **4** | **21** | **6** | ### Support Tasks (not SP-counted) | # | Task | Assignee | Notes | |---|------|----------|-------| | S1 | **SCAN-SETUP-DE-CP-KC:** Setup SonarQube scan tooling for DE, CP, KC repos in CI pipeline | LongNT144, TrungNB20 | Prerequisite for SCAN-FIX-DE (#5), SCAN-FIX-CP (#11), SCAN-FIX-KC (#12). Priority: week 1 | | S2 | **G1-WORKSHOP:** Present CodeWiki to G1 sales team (9:00 AM, 2026-06-01) | NguyetNTA8, PhatMT3 | Sprint day 1. Half-day commitment | | S3 | **TECH-LEAD:** Code reviews, architecture decisions, scan fix guidance | ThangLV4 | Ad-hoc throughout sprint | | S4 | **QA-REGRESSION:** QA testing for new features + post-scan-fix regression | CongNM8 | Focus: CodeWiki Portal E2E, provisioning flow | | S5 | **USER-MANUAL:** Complete Metis.TextIQ user manual for v1.0.0 release | PhatMT3 | Continuation from S26.09 release docs. Deliverable for Optage | | S6 | **UI-DESIGN-SCOPED-WIKI:** Design Admin Portal UI for scoped wiki generation — scope selector, seed input, expansion preview, generation trigger | PhatMT3 | Prepares AP UI spec for S26.11 implementation. Coordinate with NguyetNTA8 on UX | | S7 | **UI-DESIGN-CODEWIKI-UP:** Review and refine CodeWiki User Portal UI design per [codewiki-user-portal-spec.md](../../planning-artifacts/2-planning/specs/codewiki-user-portal-spec.md) | PhatMT3 | Validate user flows, prepare wireframes if needed. Input for TruongTQ20 | | S8 | **SPEC-WRITING:** Write/refine story-level specs for CA features (if needed) | NguyetNTA8 | Scoped Wiki, Multi-File, Reflection — story-level AC refinement | ## 6. Assignment Summary ### Per-Person Load | Person | Stories | SP (P1) | SP (P2) | Capacity ¹ | Load % (P1) | Focus Areas | |--------|:-------:|:-------:|:-------:|:----------:|:-----------:|-------------| | TruongTQ20 | 4 | **25** | — | 30 | 83% | SCAN-FIX-UPA+APA (10) + CodeWiki Portal UPA+UP (15) | | TungPT84 | 2 | **13** | — | 13 | 100% | SCAN-FIX-CB (8) + SCAN-FIX-IAM (5). IAM-PROVISION review only | | NguyenNH25 | 5 | **17** | — | 17 | 100% | **CKG pipeline:** Comment-Field (3) + Comment-Test (3) + Multi-File CA (2) + Reflect CA (3) + Scoped Wiki support (3). Team depth ⁴ | | MinhNL11 | 4 | **13** | 5 | 23 | 57% | CKG-TYPES-PR (2) + SCAN-FIX-MCP (3) + Scoped Wiki lead (5) + CodeWiki-CA (3). P2: SCAN-FIX-CA (5) | | ThangNQ63 | 3+2 | **13** | 11 | 13 | 100% | SCAN-FIX-WK+KC (5) + IAM-PROVISION (8). P2: SCAN-FIX-DE+DG (11) if capacity | | ThangLV4 | 4 | **8** | 5 | 12 | 67% | Comment-Field CP (2) + Multi-File CP (3) + Reflect CP (3). Pairs with NguyenNH25 ⁴. P2: SCAN-FIX-CP (5) | | **Total** | **22** | **108** | **21** | **108** | **100%** | — | > ¹ **Capacity = personal velocity × available eng-days.** Per-person velocity from S26.09: TruongTQ20 3.00, MinhNL11 2.33, NguyenNH25 1.70, TungPT84 1.30, ThangNQ63 1.30, ThangLV4 1.22. Velocity cap applied: min(personal_vel, baseline × 1.5 = 3.83). > > **ThangLV4 at 67%:** SCAN-FIX-CP deferred (CA/CP under active feature development — scan after code stabilizes). Focus entirely on CKG pipeline CP/Rust work. Pairs with NguyenNH25 on all stories. > > **MinhNL11 at 57%:** SCAN-FIX-CA deferred (same rationale). Takes CKG-TYPES-PR (day-1 blocker) + SCAN-FIX-MCP (small, stable repo) + Scoped Wiki architecture lead + CodeWiki-CA endpoints. Buffer available for Optage feedback (Jun 2) response. > > ⁴ **Team depth (CA+CP):** NguyenNH25 ramps up through the CKG pipeline stories (#2-6), pairing with ThangLV4 on CP/Rust and learning CA/Python architecture from MinhNL11. Goal: multiple engineers proficient in the code analysis stack. > > **Split-story SP distribution (approximate):** > - CKG-TYPES-PR (2): MinhNL11 2 (day-1 blocker — assigned to most available engineer) > - Comment-Field (5): ThangLV4 2 (CP trait) + NguyenNH25 3 (CA plugin) > - Comment-Test (3): NguyenNH25 3 (CA-only, consumes annotation data) > - Multi-File (8): ThangLV4 6 (CP/Rust extractors) + NguyenNH25 2 (CA integration) > - Reflect-Pattern (8): ThangLV4 5 (CP patterns) + NguyenNH25 3 (CA resolution) > - Reflect-Annotation (5): ThangLV4 3 (CP extraction) + NguyenNH25 2 (CA edges) > - Scoped Wiki (10): MinhNL11 5 (arch+API) + NguyenNH25 3 (impl) + 2 (review) ### Load Balance Analysis ``` Named-story SP / person — P1 only (personal cap in parentheses): TruongTQ20: 25 SP ( 83% of 30) — OK — SCAN-FIX-UPA+APA (10) + CodeWiki Portal (15) TungPT84: 13 SP (100% of 13) — AT CAP — scan-focused, IAM-PROVISION review only NguyenNH25: 17 SP (100% of 17) — AT CAP — CKG pipeline: Comment + Multi-File + Reflect + Wiki MinhNL11: 13 SP ( 57% of 23) — UNDER — types.rs + SCAN-MCP + Scoped Wiki + CodeWiki-CA. Buffer for Optage feedback ThangNQ63: 13 SP (100% of 13) — AT CAP — SCAN-FIX-WK+KC (5) + IAM-PROVISION (8) ThangLV4: 8 SP ( 67% of 12) — UNDER — Comment CP + Multi-File + Reflect (scan deferred) MinhNL11 + ThangLV4 buffer (10 + 4 = 14 SP combined): - Optage feedback (Jun 2) may spawn new stories - If sprint goes well → pull SCAN-FIX-CA or SCAN-FIX-CP from P2 ``` ## 7. Dependencies & Risks ### Cross-Service Dependencies | # | Dependency | From → To | Owner | Status | |---|-----------|-----------|-------|--------| | D1 | **types.rs consolidation PR blocks ALL CKG stories** | Stories #2-7 → #1 | MinhNL11 | Day 1 priority. Blocker tasks assigned to MinhNL11 (highest capacity, most reliable delivery) | | D2 | SCAN-FIX-DE, CP, KC require DevOps scan tool setup | SCAN-FIX → SCAN-SETUP | Engineers ← DevOps | DevOps to complete S1 in week 1 | | D3 | CODEWIKI-UPA + CODEWIKI-UP depend on CODEWIKI-CA endpoints | UPA/UP → CA | TruongTQ20 ← MinhNL11 | MinhNL11 delivers CA endpoints (3 SP) in week 1 | | D4 | **CKG pipeline ordering** (see [ckg-pipeline-alignment.md](../../planning-artifacts/2-planning/specs/ckg-pipeline-alignment.md)) | Comment+Multi-File → Reflection → Scoped Wiki | ThangLV4+NguyenNH25 → MinhNL11 | Phase 2 stories first, then 3.5/4.5, then wiki | | D5 | Reflection annotation parsing shared with Comment-Test | #5-6 coordinate extractor.rs with #2-3 | ThangLV4+NguyenNH25 | Single AST pass, two consumers — coordinate in extractor.rs | | D6 | Scoped Wiki needs all edge types from Multi-File + Reflection | #7 → #4, #5, #6 | MinhNL11 ← ThangLV4+NguyenNH25 | Scoped Wiki BFS traverses references, annotated_with, injects edges | | D7 | IAM-PROVISION depends on IAM-E02 (done) + IAM-E05 (done) | IAM-E10 → IAM-E02, E05 | ThangNQ63 | No blocker — dependencies delivered | | D8 | IAM-PROVISION Keycloak Admin API requires KC deployment to be stable | IAM-E10 → KC | ThangNQ63 ← DevOps | KC is operational (deployed S26.09) | ### Risks | # | Risk | Impact | Mitigation | |---|------|--------|------------| | R1 | **SonarQube issues more extensive than estimated** | Scan fixes consume >50% effort; features defer | Per-service stories enable independent tracking. Features have clear priority ordering for scope cut | | R2 | **MinhNL11 + ThangLV4 overloaded** | CA features (Scoped Wiki, Multi-File, Reflection) concentrated on two engineers who also have scan fixes | NguyenNH25 supports Scoped Wiki Python. ThangLV4 CP/Rust synergy reduces combined effort. Reflection defers first if needed | | R3 | **DevOps scan setup delayed for DE, CP, KC** | SCAN-FIX stories for those repos blocked | Week 1 priority for DevOps. Other repos can proceed immediately | | R4 | **Scan fix scope expands (like SCAN-FIX-FE 5→10 SP in S26.09)** | Individual stories re-estimated upward | Budget for this: 130 SP committed with 108 SP capacity means ~20 SP expected to slip | | R5 | **CodeWiki Portal reveals CA API gaps** | TruongTQ20 blocked on CA endpoint changes | Spec is code-audited (2026-05-31). API contract clear. MinhNL11 delivers CA endpoints first | | R6 | **Rust/SonarQube tooling mismatch for CP** | Scan tool may not support Rust well → SCAN-FIX-CP scope unclear | DevOps evaluates Rust SonarQube support during setup. If not viable, use clippy/cargo-audit instead | | R7 | **G1 Workshop (day 1) consumes NguyetNTA8 + PhatMT3 time** | Sprint kickoff delayed by half day | Workshop is morning only. Sprint planning finalized by end of day 1 | ## 8. Definition of Done Per [sprint-planning-framework.md](../methodology/sprint-planning-framework.md): **SonarQube Compliance Stories:** - [ ] SonarQube Quality Gate passed: 0 Security Hotspots, 0 Blocker, 0 Critical - [ ] Duplications < 3% - [ ] Changes committed to dev branch - [ ] No regression in existing tests **Feature Stories:** - [ ] Code merged to dev branch - [ ] Unit tests pass (existing + new) - [ ] Integration test coverage for new endpoints - [ ] Spec acceptance criteria verified - [ ] Code review by service owner or backup ## 9. Sprint Execution Timeline ``` Week 1 (Jun 01-05) — Foundation + Phase 2: Mon 01: G1 Workshop (NguyetNTA8 + PhatMT3, morning). Sprint kickoff (afternoon). MinhNL11: CKG-TYPES-PR (#1) — day 1 BLOCKER, unblocks all CKG stories. DevOps: scan tool setup for DE, CP, KC (S1). Scan engineers start: TungPT84→CB, TruongTQ20→UPA+APA, ThangNQ63→WK+KC. PhatMT3: user manual (S5) + begin scoped wiki UI design (S6). Tue 02: Optage feedback arrives → PM reviews, may adjust story scope. ThangLV4+NguyenNH25: COMMENT-FIELD (#2) starts — CP trait + CA plugin. MinhNL11: CODEWIKI-CA endpoints (3 SP, unblock TruongTQ20). Start SCAN-FIX-CA. Wed-Fri: ThangLV4+NguyenNH25: COMMENT-TEST (#3) + begin MULTI-FILE (#4) — parallel Phase 2+3.5. ThangLV4: SCAN-FIX-CP (after DevOps setup, interleave with features). ThangNQ63: IAM-PROVISION starts after SCAN-FIX-WK+KC. TruongTQ20: CODEWIKI-UPA proxy (after CA endpoints ready). MinhNL11: SCAN-FIX-CA+MCP. Scoped Wiki API design (architecture prep). PhatMT3: CodeWiki UP UI review (S7), coordinate with TruongTQ20. ► Week 1 checkpoint: Phase 2 stories (#2-3) done? Multi-File (#4) in progress? Week 2 (Jun 08-12) — Phase 3.5/4.5 + Scoped Wiki: Mon-Wed: ThangLV4+NguyenNH25: complete MULTI-FILE (#4), then REFLECT-PATTERN (#5) + REFLECT-ANNOTATION (#6) — Phase 4.5. MinhNL11: SCOPED-WIKI-API (#7) — starts once Phase 2+3.5 edge types available. TruongTQ20: CODEWIKI-UP frontend (wiki tab, code tab, search). ThangNQ63: IAM-PROVISION continues (webhook reconcile, tests). If capacity: start SCAN-FIX-DE (P2). NguyenNH25: supports Scoped Wiki Python after Reflection stories done. Thu: Feature testing. QA regression on CodeWiki Portal + provisioning. Fri 12: Sprint review. Scope confirmation for S26.11. ``` --- ## 10. Sprint Outcomes > **Status:** Planning. To be filled at sprint close. ### 10.1 Summary Metrics | Metric | S26.09 | S26.10 | Change | |--------|:------:|:------:|:------:| | SP Committed | 87 | 108 (P1) + 21 (P2) | +24% (P1) | | SP Delivered | 105 | — | — | | Stories (Done/Total) | 16/14 | —/22 | — | | Eng-Days | 58 | 60 | +3% | | Velocity (SP/eng/day) | 1.81 | — | — | | vs Baseline (2.55) | −29% | — | — | | Carry-Over SP | 16 | — | — | ### 10.2 Story Results > To be completed at sprint close. ### 10.3 Per-Person Velocity > To be completed at sprint close. ### 10.4 Carry-Overs > To be completed at sprint close. ### 10.5 Unplanned Stories > To be completed at sprint close. ### 10.6 Retrospective Notes > To be completed at sprint close. --- ## 11. Jira Ticket Mapping > Synced to Jira (TextIQ 26.10, board TextIQ — sprint id 3634) on 2026-06-01. Server: https://insight.fsoft.com.vn/jiradc/ ### Single Stories | Marker | Jira | |--------|------| | CKG-TYPES-PR | TEXTIQ-669 | | COMMENT-FIELD | TEXTIQ-670 | | COMMENT-TEST | TEXTIQ-671 | | REFLECT-ANNOTATION | TEXTIQ-672 | | CODEWIKI-CA | TEXTIQ-673 | | CODEWIKI-UPA | TEXTIQ-674 | ### Parent Stories + Subtasks | Parent | Jira | Subtasks | |--------|------|----------| | MULTI-FILE-XML-JSP | TEXTIQ-675 | XML→TEXTIQ-683, JSP→TEXTIQ-684 | | REFLECT-PATTERN | TEXTIQ-676 | CP→TEXTIQ-685, CA→TEXTIQ-686 | | SCOPED-WIKI-API | TEXTIQ-677 | schema→TEXTIQ-687, budget→TEXTIQ-688, seed→TEXTIQ-689 | | CODEWIKI-UP | TEXTIQ-678 | repo→TEXTIQ-690, wiki→TEXTIQ-691, code→TEXTIQ-692, search→TEXTIQ-693, chat→TEXTIQ-694 | ### SonarQube — subtasks under TEXTIQ-599 [SCAN-FIX-BE] | Marker | Jira | Marker | Jira | |--------|------|--------|------| | SCAN-FIX-CB | TEXTIQ-695 | SCAN-FIX-CA | TEXTIQ-700 | | SCAN-FIX-IAM | TEXTIQ-696 | SCAN-FIX-CP | TEXTIQ-701 | | SCAN-FIX-MCP | TEXTIQ-697 | SCAN-FIX-DE | TEXTIQ-702 | | SCAN-FIX-WK | TEXTIQ-698 | SCAN-FIX-DG | TEXTIQ-703 | | SCAN-FIX-KC | TEXTIQ-699 | | | > SCAN-FIX-APA → existing TEXTIQ-664 · SCAN-FIX-AP → existing TEXTIQ-663 · IAM-PROVISION → existing TEXTIQ-649/IAM-E10 epic (TEXTIQ-656). Not recreated. ### Support Tasks (Story type, SP=0) | Marker | Jira | |--------|------| | SCAN-SETUP-DE-CP-KC | TEXTIQ-679 | | USER-MANUAL | TEXTIQ-680 | | UI-DESIGN-SCOPED-WIKI | TEXTIQ-681 | | UI-DESIGN-CODEWIKI-UP | TEXTIQ-682 | > S4 QA-REGRESSION not created — covered by existing TEXTIQ-616 [QA-RELEASE]. > Note: subtask story points are not supported in this Jira config — SonarQube subtask SP estimates are recorded in their descriptions; SP is carried on parent stories.