Skip to content

docs: add 2B KRW sale readiness roadmap#61

Open
seonghobae wants to merge 11 commits into
developfrom
productize-20b-roadmap
Open

docs: add 2B KRW sale readiness roadmap#61
seonghobae wants to merge 11 commits into
developfrom
productize-20b-roadmap

Conversation

@seonghobae

@seonghobae seonghobae commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a concrete 2B KRW / 20억 KRW sale-readiness execution plan for kaefa
  • document why the next phase should keep one repo with explicit kaefa-core, kaefa-studio, and kaefa-runner boundaries instead of introducing a submodule now
  • replace the placeholder LICENSE with GPL-3 text and document license/IP diligence risk, runtime dependency licenses, and working commercial posture
  • add a buyer-facing data room index, release diligence checklist, benchmark manifest/protocol, commercial model, and pilot scorecard
  • add a pinned test-fast GitHub Actions gate for manifest and Shiny product-surface contracts
  • improve the Shiny Studio report surface with invalid-column errors and reproducibility metadata
  • add a local Studio deployment package: Dockerfile, .dockerignore, ShinyProxy example, and deployment guide
  • link the FigJam roadmap created without Figma Code Connect: https://www.figma.com/board/yGly1YSL1InCPRUrBW2p03

Validation

  • Rscript -e 'testthat::test_file("tests/testthat/test-benchmark-manifest.R")'
  • Rscript - <<'RSCRIPT' with StopReporter for test-benchmark-manifest.R and test-shiny-product-surface.R
  • podman run --rm -v "$PWD":/src:ro --entrypoint bash kaefa-studio:local -lc 'set -euo pipefail; R CMD INSTALL /src >/tmp/install.log; cd /tmp; Rscript -e "testthat::test_file(\"/src/tests/testthat/test-benchmark-manifest.R\")"'
  • npx -y markdownlint-cli2@0.20.0 docs/superpowers/plans/2026-07-02-kaefa-2b-krw-sale-readiness.md docs/business/2b-krw-commercial-model.md docs/diligence/data-room-index.md docs/operations/deployment.md
  • ruby -e 'require "yaml"; YAML.load_file("deploy/shinyproxy/application.yml.example"); puts "shinyproxy yaml ok"'
  • Rscript -e 'read.csv("inst/benchmarks/manifest.csv", stringsAsFactors = FALSE); cat("manifest csv ok\n")'
  • git diff --check
  • Earlier package/container checks in this PR include podman build -t kaefa-studio:local ., Studio HTTP smoke test, package install in the container, dependency license query, Shiny app parse, workflow YAML parse, and markdownlint across the added diligence/product docs.

Notes

  • Review approval is intentionally not treated as a productization blocker.
  • Broken CI, failing reproducible tests, missing runtime dependencies, and missing license/IP authority remain real blockers.
  • Figma Code Connect was not used.
  • Latest pushed head: ba602833b6a6738e44217e9994cfc22748eb388d.

Copilot AI review requested due to automatic review settings July 2, 2026 06:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds new documentation to guide “sale readiness” work for kaefa, focusing on productization planning and upfront license/IP diligence posture to support buyer due diligence.

Changes:

  • Added a detailed execution roadmap for “sale readiness” work (license posture, CI gates, benchmarks, UI boundary, deployment, revenue evidence, diligence bundle).
  • Added a standalone license/IP diligence note describing current license metadata risk and a conservative commercial posture pending owner/legal review.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

File Description
docs/superpowers/plans/2026-07-02-kaefa-20b-sale-readiness.md New sale-readiness execution plan/roadmap covering productization tasks and sequencing.
docs/diligence/license-and-ip.md New diligence note documenting current license-file mismatch risk and dependency/license constraints.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/superpowers/plans/2026-07-02-kaefa-20b-sale-readiness.md Outdated
Comment thread docs/superpowers/plans/2026-07-02-kaefa-20b-sale-readiness.md Outdated
Comment thread docs/superpowers/plans/2026-07-02-kaefa-2b-krw-sale-readiness.md
Copilot AI review requested due to automatic review settings July 2, 2026 06:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Comment thread tests/testthat/test-benchmark-manifest.R Outdated
Comment thread .github/workflows/test-fast.yaml
Copilot AI review requested due to automatic review settings July 2, 2026 06:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 6 comments.

Comment thread tests/testthat/test-benchmark-manifest.R Outdated
Comment thread inst/benchmarks/manifest.csv Outdated
Comment thread deploy/shinyproxy/application.yml.example
Comment thread docs/superpowers/plans/2026-07-02-kaefa-20b-sale-readiness.md Outdated
Copilot AI review requested due to automatic review settings July 2, 2026 07:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@opencode-agent

opencode-agent Bot commented Jul 2, 2026

Copy link
Copy Markdown

OpenCode Review Overview

  • Head SHA: bb5974762e9eed55e08d5643df7331d8d7599732
  • Workflow run: 28569545343
  • Workflow attempt: 1
  • Gate result: APPROVE (exit 0)

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (10 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (10 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow: test-fast.yaml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: test-fast.yaml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Docs (9 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (9 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (4 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (4 files)"]
  R4 --> V4["targeted test run"]
Loading

@seonghobae seonghobae changed the title docs: add 20B KRW sale readiness roadmap docs: add 2B KRW sale readiness roadmap Jul 2, 2026
Copilot AI review requested due to automatic review settings July 2, 2026 10:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 24 out of 24 changed files in this pull request and generated 8 comments.

Comment on lines +6 to +10
app_path <- app_paths[file.exists(app_paths)][1]

expect_false(is.na(app_path))

app_source <- readLines(app_path, warn = FALSE)
Comment on lines +18 to +31
.ensure_kaefa_namespace <- function() {
if (requireNamespace("kaefa", quietly = TRUE)) {
return(invisible(TRUE))
}

if (!requireNamespace("pkgload", quietly = TRUE)) {
testthat::skip("kaefa is not installed and pkgload is unavailable")
}

pkgload::load_all(.find_kaefa_root(), export_all = FALSE, quiet = TRUE)
invisible(TRUE)
}

.ensure_kaefa_namespace()
Comment on lines +23 to +36
- uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2
with:
extra-packages: any::testthat
needs: check

- name: Run fast productization tests
run: |
Rscript - <<'RSCRIPT'
reporter <- testthat::StopReporter$new()
testthat::test_file("tests/testthat/test-benchmark-manifest.R",
reporter = reporter)
testthat::test_file("tests/testthat/test-shiny-product-surface.R",
reporter = reporter)
RSCRIPT
Comment on lines +10 to +12
| Field | Scoring Guidance |
| --- | --- |
| Pilot owner | Named accountable owner |
Comment on lines +11 to +13
| Exit multiple | ARR needed for 2B KRW value |
| --- | ---: |
| 3x ARR | 667M KRW |
Comment thread Dockerfile
xz-utils \
&& rm -rf /var/lib/apt/lists/*

RUN Rscript -e 'install.packages(c("future", "mirt", "psych", "plyr", "listenv", "NCmisc", "progress", "shiny", "DT", "fitdistrplus"), repos = Sys.getenv("R_REPOS"))'
Comment on lines +44 to +48
expect_true(all(manifest$rows > 0))
expect_true(all(manifest$items > 0))
expect_true(all(manifest$expected_factor_min >= 1))
expect_true(all(manifest$expected_factor_max >= manifest$expected_factor_min))
expect_true(all(manifest$expected_runtime_seconds > 0))
Comment thread inst/shiny-app/app.R
tryCatch({
values$runOptions <- list(
packageVersion = as.character(utils::packageVersion("kaefa")),
startedAt = format(Sys.time(), "%Y-%m-%d %H:%M:%S"),
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