🧺 chore: remove v1 app for v2 start - #23
Conversation
Subtractive start per spec decision V3: removes the v1 public app (index.html, assets/, sw.js, _headers) so the v2 tree is rails + data only. Keeps .github/, biome, package.json, scripts/, docs/, and data/ (incl. data/admin/ — CI tests and v1 editing until Phase 3). New code lands at final paths per V4. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Brian L. <brian@uniquepixels.xyz>
|
Warning Review limit reached
Next review available in: 5 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR strips the repository of the entire v1 front-end application (scripts, styles, HTML, service worker, sages/keyboard/rabbinic-time modules), admin server and PDF-build tooling, data validation scripts, various data files, and extensive documentation. It also updates CI tooling commands, biome version, and package.json scripts/devDependencies, and refreshes README/CLAUDE.md/CONTRIBUTING.md to reflect a v2 branch overhaul, along with a data version timestamp bump. ChangesRepository cleanup for v2 overhaul
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
jastrow | 116104d | Jul 04 2026, 07:11 PM |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude/CLAUDE.md:
- Around line 9-16: The Tech Stack section still has placeholder entries for
Components, Data, and the Hebrew font, which makes the repo guidance incomplete.
Update the CLAUDE.md tech stack bullets with the actual component library, data
layer, and Hebrew font used by the v2 stack, and remove the literal placeholder
text so the values are specific and actionable. Use the existing Tech Stack list
items as the place to fill in the missing symbols.
In `@package.json`:
- Around line 6-13: The CI workflow is calling a script that no longer exists,
so either restore the missing validate:data entry in package.json or update
ci-data.yml to use one of the existing scripts. Check the scripts block in
package.json and the workflow step in ci-data.yml, then make them match so the
pipeline does not fail at the data validation step.
- Around line 12-15: The TypeScript check command is invoking tsc without
ensuring the compiler is installed locally. Update the pinned toolchain and
package setup so the qa:tsc script and the CI Type Check job can resolve tsc
consistently, either by adding typescript back into the declared
toolchain/dependencies or by replacing the direct tsc invocation with the
appropriate bundled/local alternative. Use qa:tsc and the Type Check job
configuration as the places to verify, and keep the package.json script aligned
with the installed toolchain.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 63901a9c-4605-4201-bfa7-3ac6efefd174
⛔ Files ignored due to path filters (11)
assets/images/favicon/apple-touch-icon.pngis excluded by!**/*.pngassets/images/favicon/favicon-96x96.pngis excluded by!**/*.pngassets/images/favicon/favicon.icois excluded by!**/*.icoassets/images/favicon/favicon.svgis excluded by!**/*.svgassets/images/favicon/web-app-manifest-192x192.pngis excluded by!**/*.pngassets/images/favicon/web-app-manifest-512x512.pngis excluded by!**/*.pngassets/images/logo.svgis excluded by!**/*.svgassets/images/sefarialogo.svgis excluded by!**/*.svgassets/images/social-cover.pngis excluded by!**/*.pngassets/pdfs/rabbinic-time.pdfis excluded by!**/*.pdfbun.lockis excluded by!**/*.lock
📒 Files selected for processing (64)
.assetsignore.cfignore.claude/CLAUDE.md.gitattributes.github/actions/setup-env/action.yml.mise.tomlCONTRIBUTING.mdREADME.md_headersassets/images/favicon/site.webmanifestassets/scripts/announcer.jsassets/scripts/app.jsassets/scripts/constants.jsassets/scripts/data-loader.jsassets/scripts/keyboard.jsassets/scripts/rabbinic-time.jsassets/scripts/sages-data.jsassets/scripts/sages-graph.jsassets/scripts/sages-sidebar.jsassets/scripts/sages.jsassets/scripts/sanitizer.jsassets/scripts/scroll-manager.jsassets/styles/accessibility.cssassets/styles/rabbinic-time.cssassets/styles/sages.cssassets/styles/styles.cssdata/admin/.gitignoredata/admin/admin.htmldata/admin/annotations.jsondata/admin/pdf-builds/rabbinic-time.htmldata/admin/pdf-builds/render-rabbinic-time.tsdata/admin/pdf-builds/stage.tsdata/admin/scripts/ai-classify.tsdata/admin/scripts/cleanup-nested-reflinks.pydata/admin/scripts/remove-nested-annotations.pydata/admin/server.test.tsdata/admin/server.tsdata/jastrow-abbr.jsondata/jastrow-hebrew-abbr.jsondata/jastrow-part1.jsonldata/jastrow-part2.jsonldata/raw/Ezra Brand abbr dictionary.jsondata/raw/data-processing-pipeline.mddata/raw/jastrow-abbr.jsondata/raw/jastrow-hebrew-abbr.jsondata/raw/jastrow-part1.jsonldata/raw/jastrow-part2.jsonldata/raw/sages-source.jsondata/sages.jsondata/version.jsondocs/accessibility-checklist.mddocs/architecture.mddocs/data-entry-schema.mddocs/specs/2026-06-04-contribution-readiness.mddocs/specs/2026-06-04-issue-reporting-spec.mddocs/specs/2026-06-06-biome-tsc-cleanup.mdindex.htmlpackage.jsonscripts/lib/entry-html.test.tsscripts/lib/entry-html.tsscripts/lib/entry-schema.test.tsscripts/lib/entry-schema.tsscripts/validate-data.tssw.js
💤 Files with no reviewable changes (51)
- data/version.json
- .gitattributes
- data/admin/pdf-builds/stage.ts
- scripts/validate-data.ts
- .cfignore
- scripts/lib/entry-html.ts
- data/admin/scripts/remove-nested-annotations.py
- docs/specs/2026-06-04-contribution-readiness.md
- assets/scripts/rabbinic-time.js
- docs/specs/2026-06-06-biome-tsc-cleanup.md
- data/raw/jastrow-hebrew-abbr.json
- assets/styles/accessibility.css
- assets/scripts/sages-sidebar.js
- .assetsignore
- scripts/lib/entry-schema.test.ts
- assets/scripts/sages.js
- data/admin/pdf-builds/render-rabbinic-time.ts
- assets/scripts/sages-graph.js
- data/raw/jastrow-abbr.json
- assets/scripts/announcer.js
- docs/accessibility-checklist.md
- assets/scripts/data-loader.js
- docs/data-entry-schema.md
- scripts/lib/entry-html.test.ts
- data/admin/server.ts
- docs/specs/2026-06-04-issue-reporting-spec.md
- docs/architecture.md
- assets/scripts/scroll-manager.js
- data/jastrow-hebrew-abbr.json
- data/admin/server.test.ts
- data/admin/scripts/ai-classify.ts
- data/raw/data-processing-pipeline.md
- assets/styles/rabbinic-time.css
- assets/styles/sages.css
- data/admin/.gitignore
- data/jastrow-abbr.json
- assets/scripts/constants.js
- _headers
- assets/scripts/sages-data.js
- sw.js
- assets/styles/styles.css
- CONTRIBUTING.md
- assets/images/favicon/site.webmanifest
- data/raw/Ezra Brand abbr dictionary.json
- assets/scripts/app.js
- assets/scripts/keyboard.js
- data/admin/scripts/cleanup-nested-reflinks.py
- scripts/lib/entry-schema.ts
- index.html
- data/admin/pdf-builds/rabbinic-time.html
- assets/scripts/sanitizer.js
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
- GitHub Check: semgrep-cloud-platform/scan
- GitHub Check: Workers Builds: jastrow
⚠️ CI failures not shown inline (10)
GitHub Actions: CI - Data checks / 1_Data change size.txt: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run # Only the dictionary JSONL counts toward the ceiling (D8 is about
�[36;1m# Only the dictionary JSONL counts toward the ceiling (D8 is about�[0m
�[36;1m# mass entry reserialization); admin-tool code under data/admin is�[0m
�[36;1m# not dictionary data and must not trip this guard.�[0m
�[36;1mchanged=$(git diff --numstat "$BASE_SHA" "$HEAD_SHA" -- 'data/**/*.jsonl' \�[0m
�[36;1m | awk '{ added += $1; deleted += $2 } END { print added + deleted + 0 }')�[0m
�[36;1mecho "Changed data lines: ${changed} (ceiling: ${MAX_CHANGED_LINES})"�[0m
�[36;1mif [ "$changed" -gt "$MAX_CHANGED_LINES" ]; then�[0m
�[36;1m echo "::error::Data change of ${changed} lines exceeds the ${MAX_CHANGED_LINES}-line ceiling. Split the PR (one topic, ~25-50 entries), or add the 'bulk-data-ok' label for a genuine bulk correction."�[0m
GitHub Actions: CI - Data checks / Data change size: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run # Only the dictionary JSONL counts toward the ceiling (D8 is about
�[36;1m# Only the dictionary JSONL counts toward the ceiling (D8 is about�[0m
�[36;1m# mass entry reserialization); admin-tool code under data/admin is�[0m
�[36;1m# not dictionary data and must not trip this guard.�[0m
�[36;1mchanged=$(git diff --numstat "$BASE_SHA" "$HEAD_SHA" -- 'data/**/*.jsonl' \�[0m
�[36;1m | awk '{ added += $1; deleted += $2 } END { print added + deleted + 0 }')�[0m
�[36;1mecho "Changed data lines: ${changed} (ceiling: ${MAX_CHANGED_LINES})"�[0m
�[36;1mif [ "$changed" -gt "$MAX_CHANGED_LINES" ]; then�[0m
�[36;1m echo "::error::Data change of ${changed} lines exceeds the ${MAX_CHANGED_LINES}-line ceiling. Split the PR (one topic, ~25-50 entries), or add the 'bulk-data-ok' label for a genuine bulk correction."�[0m
GitHub Actions: CI - Data checks / Validate data: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Running mise install
[command]/home/runner/.local/share/mise/bin/mise install
�[2mmise�[0m �[34mbun�[0m@1.3.14 [1/3] install
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [1/2] install
�[2mmise�[0m �[34mbun�[0m@1.3.14 [1/3] download bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [2/3] generate checksum bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] extract bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] bun -v
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] 1.3.14
�[2mmise�[0m �[34mbun�[0m@1.3.14 �[38;5;10m✓�[0m installed
�[33mmise�[0m �[33mWARN�[0m mise-versions endpoint=github_release repo=biomejs/biome tag=`@biomejs/biome`@2.5.2 outcome=invalid_asset_urls fallback=true
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [1/2] download biome-linux-x64
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [2/2] verify GitHub artifact attestations
�[31mmise�[0m �[31mERROR�[0m Failed to install aqua:biomejs/biome@2.5.2: GitHub artifact attestations verification failed: Verification failed: Sigstore error: TUF error: TUF repository load failed: transport error: GET https://tuf-repo-cdn.sigstore.dev/16.root.json failed: error sending request for url (https://tuf-repo-cdn.sigstore.dev/16.root.json)
�[31mmise�[0m �[31mERROR�[0m Version: 2026.7.0 linux-x64 (2026-07-02)
�[31mmise�[0m �[31mERROR�[0m �[2mRun with --verbose or MISE_VERBOSE=1 for more information�[0m
##[endgroup]
##[error]The process '/home/runner/.local/share/mise/bin/mise' failed with exit code 1
GitHub Actions: CI - Data checks / 0_Validate data.txt: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Running mise install
[command]/home/runner/.local/share/mise/bin/mise install
�[2mmise�[0m �[34mbun�[0m@1.3.14 [1/3] install
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [1/2] install
�[2mmise�[0m �[34mbun�[0m@1.3.14 [1/3] download bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [2/3] generate checksum bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] extract bun-linux-x64.zip
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] bun -v
�[2mmise�[0m �[34mbun�[0m@1.3.14 [3/3] 1.3.14
�[2mmise�[0m �[34mbun�[0m@1.3.14 �[38;5;10m✓�[0m installed
�[33mmise�[0m �[33mWARN�[0m mise-versions endpoint=github_release repo=biomejs/biome tag=`@biomejs/biome`@2.5.2 outcome=invalid_asset_urls fallback=true
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [1/2] download biome-linux-x64
�[2mmise�[0m �[34mbiome�[0m@2.5.2 [2/2] verify GitHub artifact attestations
�[31mmise�[0m �[31mERROR�[0m Failed to install aqua:biomejs/biome@2.5.2: GitHub artifact attestations verification failed: Verification failed: Sigstore error: TUF error: TUF repository load failed: transport error: GET https://tuf-repo-cdn.sigstore.dev/16.root.json failed: error sending request for url (https://tuf-repo-cdn.sigstore.dev/16.root.json)
�[31mmise�[0m �[31mERROR�[0m Version: 2026.7.0 linux-x64 (2026-07-02)
�[31mmise�[0m �[31mERROR�[0m �[2mRun with --verbose or MISE_VERBOSE=1 for more information�[0m
##[endgroup]
##[error]The process '/home/runner/.local/share/mise/bin/mise' failed with exit code 1
GitHub Actions: CI - Quality checks / Lint: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
- noConditionalExpect
- noDrizzleDeleteWithoutWhere
- noDrizzleUpdateWithoutWhere
- noDuplicateFieldDefinitionNames
- noDuplicateSelectors
- noEmptyObjectKeys
- noExcessiveNestedCallbacks
- noExcessiveSelectorClasses
- noFloatingPromises
- noIdenticalTestTitle
- noImpliedEval
- noInlineStyles
- noJsxLeakedDollar
- noJsxNamespace
- noLoopFunc
- noMisleadingReturnType
- noMisusedPromises
- noPlaywrightElementHandle
- noPlaywrightEval
- noPlaywrightForceOption
- noPlaywrightMissingAwait
- noPlaywrightNetworkidle
- noPlaywrightPagePause
- noPlaywrightUselessAwait
- noPlaywrightWaitForNavigation
- noPlaywrightWaitForSelector
- noPlaywrightWaitForTimeout
- noReactNativeDeepImports
- noReactNativeLiteralColors
- noReactNativeRawText
- noReactStringRefs
- noRestrictedDependencies
- noSvelteUnnecessaryStateWrap
- noTopLevelLiterals
- noUndeclaredClasses
- noUnnecessaryTemplateExpression
- noUnsafePlusOperands
- noUntrustedLicenses
- noUnusedClasses
- noUselessTypeConversion
- noVueImportCompilerMacros
- noVueRefAsOperand
- noVueVOnNumberValues
- useArraySome
- useAwaitThenable
- useBaseline
- useConsistentTestIt
- useDisposables
- useDomNodeTextContent
- useDomQuerySelector
- useExhaustiveSwitchCases
- useExpect
- useExplicitReturnType
- useExplicitType
- useIframeSandbox
- useImportsFirst
- useIncludes
- useMathMinMax
- useNamedCaptureGroup
- useNullishCoalescing
- usePlaywrightValidDescribeCallback
- useQwikLoaderLocation
- useReactAsyncServerFunction
- useReactFunctionComponentDefinition
- useReactNativePlatformComponents
- useReduceTypeParameter
- useRegexpExec
- useRegexpTest
- useScopedStyles
- useSortedClasses
- useStringStartsEndsWith
- useSvelteRequireEachKey
- useTestHooksInOrder
- useTestHooksOnTop
- useThisInClassMethods
- useUnicodeReg...
GitHub Actions: CI - Quality checks / 0_Lint.txt: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
- noConditionalExpect
- noDrizzleDeleteWithoutWhere
- noDrizzleUpdateWithoutWhere
- noDuplicateFieldDefinitionNames
- noDuplicateSelectors
- noEmptyObjectKeys
- noExcessiveNestedCallbacks
- noExcessiveSelectorClasses
- noFloatingPromises
- noIdenticalTestTitle
- noImpliedEval
- noInlineStyles
- noJsxLeakedDollar
- noJsxNamespace
- noLoopFunc
- noMisleadingReturnType
- noMisusedPromises
- noPlaywrightElementHandle
- noPlaywrightEval
- noPlaywrightForceOption
- noPlaywrightMissingAwait
- noPlaywrightNetworkidle
- noPlaywrightPagePause
- noPlaywrightUselessAwait
- noPlaywrightWaitForNavigation
- noPlaywrightWaitForSelector
- noPlaywrightWaitForTimeout
- noReactNativeDeepImports
- noReactNativeLiteralColors
- noReactNativeRawText
- noReactStringRefs
- noRestrictedDependencies
- noSvelteUnnecessaryStateWrap
- noTopLevelLiterals
- noUndeclaredClasses
- noUnnecessaryTemplateExpression
- noUnsafePlusOperands
- noUntrustedLicenses
- noUnusedClasses
- noUselessTypeConversion
- noVueImportCompilerMacros
- noVueRefAsOperand
- noVueVOnNumberValues
- useArraySome
- useAwaitThenable
- useBaseline
- useConsistentTestIt
- useDisposables
- useDomNodeTextContent
- useDomQuerySelector
- useExhaustiveSwitchCases
- useExpect
- useExplicitReturnType
- useExplicitType
- useIframeSandbox
- useImportsFirst
- useIncludes
- useMathMinMax
- useNamedCaptureGroup
- useNullishCoalescing
- usePlaywrightValidDescribeCallback
- useQwikLoaderLocation
- useReactAsyncServerFunction
- useReactFunctionComponentDefinition
- useReactNativePlatformComponents
- useReduceTypeParameter
- useRegexpExec
- useRegexpTest
- useScopedStyles
- useSortedClasses
- useStringStartsEndsWith
- useSvelteRequireEachKey
- useTestHooksInOrder
- useTestHooksOnTop
- useThisInClassMethods
- useUnicodeReg...
GitHub Actions: CI - Quality checks / Test: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run bun qa:test
�[36;1mbun qa:test�[0m
shell: /usr/bin/bash -e {0}
env:
MISE_LOG_LEVEL: info
GITHUB_***REDACTED***
MISE_TRUSTED_CONFIG_PATHS: /home/runner/work/jastrow/jastrow
MISE_YES: 1
##[endgroup]
$ bun test
bun test v1.3.14 (0d9b296a)
No tests found!
Tests need ".test", "_test_", ".spec" or "_spec_" in the filename (ex: "MyApp.test.ts")
Learn more about bun test: https://bun.com/docs/cli/test
error: script "qa:test" exited with code 1
##[error]Process completed with exit code 1.
GitHub Actions: CI - Quality checks / 1_Type Check.txt: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run echo "::add-matcher::.github/matchers/tsc.json" && bun tsc --noEmit --skipLibCheck --pretty false
�[36;1mecho "::add-matcher::.github/matchers/tsc.json" && bun tsc --noEmit --skipLibCheck --pretty false�[0m
shell: /usr/bin/bash -e {0}
env:
MISE_LOG_LEVEL: info
GITHUB_***REDACTED***
MISE_TRUSTED_CONFIG_PATHS: /home/runner/work/jastrow/jastrow
MISE_YES: 1
##[endgroup]
error: Script not found "tsc"
##[error]Process completed with exit code 1.
GitHub Actions: CI - Quality checks / Type Check: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run echo "::add-matcher::.github/matchers/tsc.json" && bun tsc --noEmit --skipLibCheck --pretty false
�[36;1mecho "::add-matcher::.github/matchers/tsc.json" && bun tsc --noEmit --skipLibCheck --pretty false�[0m
shell: /usr/bin/bash -e {0}
env:
MISE_LOG_LEVEL: info
GITHUB_***REDACTED***
MISE_TRUSTED_CONFIG_PATHS: /home/runner/work/jastrow/jastrow
MISE_YES: 1
##[endgroup]
error: Script not found "tsc"
##[error]Process completed with exit code 1.
GitHub Actions: CI - Quality checks / 2_Test.txt: 🧺 chore: remove v1 app for v2 start
Conclusion: failure
##[group]Run bun qa:test
�[36;1mbun qa:test�[0m
shell: /usr/bin/bash -e {0}
env:
MISE_LOG_LEVEL: info
GITHUB_***REDACTED***
MISE_TRUSTED_CONFIG_PATHS: /home/runner/work/jastrow/jastrow
MISE_YES: 1
##[endgroup]
$ bun test
bun test v1.3.14 (0d9b296a)
No tests found!
Tests need ".test", "_test_", ".spec" or "_spec_" in the filename (ex: "MyApp.test.ts")
Learn more about bun test: https://bun.com/docs/cli/test
error: script "qa:test" exited with code 1
##[error]Process completed with exit code 1.
🧰 Additional context used
📓 Path-based instructions (2)
.github/**
⚙️ CodeRabbit configuration file
.github/**: CI/CD configuration. Check for:
- Pinned action versions with hash comments
- Harden Runner with egress blocking on all jobs
- No credential or secret exposure risks
- Correct branch targeting (main, plus v2 during the v2 overhaul)
Files:
.github/actions/setup-env/action.yml
**
⚙️ CodeRabbit configuration file
**: General project rules:
- This is a vanilla JS static site PWA. No bundler, no framework, no npm packages at runtime.
- All JS runs in the browser unless under
data/admin/(which uses Bun).- Biome enforces lint and formatting.
- DOMPurify is loaded via CDN with SRI for XSS sanitization.
Files:
package.jsonREADME.md
🪛 markdownlint-cli2 (0.22.1)
README.md
[warning] 1-1: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
🔇 Additional comments (3)
.github/actions/setup-env/action.yml (1)
11-16: LGTM!.mise.toml (1)
2-2: LGTM!README.md (1)
22-23: LGTM!
| ## Tech Stack | ||
|
|
||
| - **Runtime:** Browser (vanilla JS, no build step) | ||
| - **Components:** Web Awesome (loaded via CDN kit) | ||
| - **Icons:** Font Awesome Pro (CDN kit) | ||
| - **Fonts:** Lexend (headings), Atkinson Hyperlegible Next (body) | ||
| - **Data:** JSONL dictionary files loaded into IndexedDB | ||
| - **Hosting:** Cloudflare Pages (static, no server) | ||
| - **Runtime:** Browser | ||
| - **Components:** | ||
| - **Icons:** Font Awesome Pro | ||
| - **Fonts:** Lexend (headings), Atkinson Hyperlegible Next (body), ??? (Hebrew) | ||
| - **Data:** | ||
| - **Hosting:** Cloudflare |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fill in placeholder Tech Stack bullets.
"Components:" and "Data:" are left blank, and Hebrew font is a literal "???" placeholder. Since this file guides Claude/AI assistants working in the repo, incomplete entries reduce its usefulness until filled in for the v2 stack.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude/CLAUDE.md around lines 9 - 16, The Tech Stack section still has
placeholder entries for Components, Data, and the Hebrew font, which makes the
repo guidance incomplete. Update the CLAUDE.md tech stack bullets with the
actual component library, data layer, and Hebrew font used by the v2 stack, and
remove the literal placeholder text so the values are specific and actionable.
Use the existing Tech Stack list items as the place to fill in the missing
symbols.
|
CP-0 passed: rails verified via test PR #22 (ci-data, ci-lint, CodeQL, CodeRabbit APPROVED), protection verified, subtractive start merged (#23). V2-V4 reconfirmed. V5 superseded: maintainer expanded the prune (data/, scripts/, ci-data.yml removed from v2); Phase 1 tools read raw data from main's git history. Data-edit freeze on main now in effect (V8). Plan code updated to match. Signed-off-by: Brian L. <brian@uniquepixels.xyz> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>



Subtractive start per spec decision V3 — the v2 tree becomes rails + data only.
Deleted (31 files, −9,586 lines):
index.html,assets/(scripts, styles, images, pdfs),sw.js,_headersKept deliberately:
.github/,biome.json,package.json,tsconfig.json,renovate.json— the review/CI railsscripts/— validators reused by pipeline v2data/includingdata/admin/— CI tests cover the admin server, and it remains the v1 data editor until Phase 3 replaces itwrangler.jsonc,.assetsignore,.cfignore) — needed again at Phase 4/cutoverExpected side effects: Cloudflare branch previews of
v2will 404 until Phase 4 (noindex.html). Local gates all green:qa:ci,qa:tsc,qa:test(28/28),validate:data.🤖 Generated with Claude Code
Summary by CodeRabbit
Refactor
Documentation
Chores