Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
05d6766
docs: add kaefa sale readiness roadmap
seonghobae Jul 2, 2026
fa1377a
test: add benchmark manifest contract
seonghobae Jul 2, 2026
20c0ce4
docs: define studio and commercial evidence
seonghobae Jul 2, 2026
bb59747
docs: add release diligence boundaries
seonghobae Jul 2, 2026
834a7a2
ci: add fast benchmark manifest gate
seonghobae Jul 2, 2026
6f4a1d2
chore: add studio deployment package
seonghobae Jul 2, 2026
ababed0
docs: update sale readiness execution state
seonghobae Jul 2, 2026
b7a0cf9
feat: improve studio report metadata
seonghobae Jul 2, 2026
a031a6d
docs: add sale diligence data room index
seonghobae Jul 2, 2026
ba60283
fix: align sale readiness diligence targets
seonghobae Jul 2, 2026
97e0eec
test: bootstrap repo-local kaefa namespace
seonghobae Jul 2, 2026
fad8aab
test: harden productization gate inputs
seonghobae Jul 2, 2026
0bbeb8f
docs: map org resources for sale readiness
seonghobae Jul 2, 2026
b69781c
docs: ground valuation targets in public benchmarks
seonghobae Jul 2, 2026
7d03f2e
docs: add sale diligence evidence templates
seonghobae Jul 2, 2026
c256cd1
docs: record repository boundary decision
seonghobae Jul 2, 2026
e010cbe
docs: define kaefa core api contract
seonghobae Jul 2, 2026
3d59f1d
test: pin core api contract in fast gate
seonghobae Jul 2, 2026
e42a5b6
fix: harden studio product surface contracts
seonghobae Jul 2, 2026
8516522
test: locate installed shiny app contract
seonghobae Jul 2, 2026
b5bfdb8
docs: align sale readiness evidence status
seonghobae Jul 2, 2026
0103f54
docs: record container smoke evidence
seonghobae Jul 2, 2026
78f3056
test: harden productization contracts
seonghobae Jul 2, 2026
6f08f32
docs: clarify runtime smoke evidence scope
seonghobae Jul 2, 2026
93b5ba5
docs: clarify runtime evidence scope
seonghobae Jul 2, 2026
f44d0aa
docs: refresh organization resource map
seonghobae Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.git
.github
.Rproj.user
.Rhistory
.RData
.Ruserdata
*.Rcheck
*.tar.gz
docs/superpowers
41 changes: 41 additions & 0 deletions .github/workflows/test-fast.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: test-fast

on:
push:
branches: [main, master, develop]
pull_request:
branches: [main, master, develop]

permissions:
contents: read

jobs:
test-fast:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: r-lib/actions/setup-r@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2
with:
extra-packages: any::testthat
needs: check

- name: Install kaefa package for fast tests
run: R CMD INSTALL .

- 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)
testthat::test_file("tests/testthat/test-core-api-contract.R",
reporter = reporter)
RSCRIPT
Comment thread
seonghobae marked this conversation as resolved.
17 changes: 17 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,23 @@ It provides:
- optional remote worker initialization (`aefaInit`),
- an interactive Shiny UI (`launchAEFA`).

## Productization Boundaries

The repository remains a monorepo until the product surface has independent
release or deployment needs. Use these boundaries when planning sale-readiness
work:

- `kaefa-core`: the R/statistical engine boundary around `aefa()`,
`engineAEFA()`, model selection, item-fit evaluation, theta-prior utilities,
and benchmark evidence.
- `kaefa-studio`: the buyer-facing UI boundary around `launchAEFA()` and
`inst/shiny-app/app.R`.
- `kaefa-runner`: the future deployment and execution boundary for container,
hosted, remote, or scheduled analysis workflows.

Do not introduce a git submodule unless a downstream buyer or deployment model
explicitly requires vendored source integration.

## Repository Layout

- `R/kaefa.R`: public orchestration entry points and exported runtime behavior.
Expand Down
1 change: 1 addition & 0 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ LazyData: true
Repository: CRAN
Suggests: covr,
testthat,
pkgload,
knitr,
rmarkdown
VignetteBuilder: knitr
Expand Down
28 changes: 28 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM r-base:4.4.2

ENV R_REPOS=https://cloud.r-project.org
Comment on lines +1 to +3

WORKDIR /opt/kaefa

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
cmake \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
libuv1-dev \
pandoc \
xz-utils \
&& rm -rf /var/lib/apt/lists/*

COPY DESCRIPTION /opt/kaefa/DESCRIPTION

RUN Rscript -e 'install.packages("remotes", repos = Sys.getenv("R_REPOS")); remotes::install_deps(dependencies = c("Depends", "Imports", "LinkingTo"), repos = Sys.getenv("R_REPOS"), upgrade = "never")'

COPY . /opt/kaefa

RUN R CMD INSTALL .

EXPOSE 3838

CMD ["Rscript", "-e", "kaefa::launchAEFA(host = '0.0.0.0', port = 3838)"]
Loading
Loading