Skip to content

[DONE] 원래 레포로 올릴 깨끗한 브랜치 — #7·#8·#9 를 engmung/Patternflow main 위 커밋 셋으로 (기록용, 머지하지 않음) - #10

Merged
patternflow-bot merged 12 commits into
mainfrom
claude/patternflow-upstream-docs-r4eab8
Oct 12, 2026
Merged

patternflow-bot merged 12 commits into
mainfrom
claude/patternflow-upstream-docs-r4eab8

Conversation

@patternflow-bot

@patternflow-bot patternflow-bot commented Oct 12, 2026 •

Copy link
Copy Markdown

studio / https://claude.ai/code/session_01VaFtEmtx2AkdH1wnbQpV3Z

기록용 PR 이라 이 포크에선 머지하지 않는다. 원래 레포 main 최신 위에 포크 PR #7·#8·#9 를 커밋 셋으로 다시 얹었고, 작업용 파일은 하나도 없다. 총괄이 이 브랜치로 engmung/Patternflow 에 PR 을 올리면 웹 가이드의 첫 굽기 순서, /flash 리다이렉트, 새 README, BUILD_GUIDE §8 이 원래 레포에 들어간다.

기록용 PR — 이 포크에 머지하지 않는다. 포크 main 은 원래 레포 main 보다 뒤처져 있어서(abe7eb1) 이 PR 의 Files changed 에는 원래 레포에 이미 있는 engmung#489–engmung#491 커밋까지 보인다. 원래 레포에 올라갈 실제 차이는 커밋 셋뿐이고, 아래 비교 주소에서 그대로 보인다:
engmung/Patternflow@main...Patternflow-lab:Patternflow:claude/patternflow-upstream-docs-r4eab8

원래 레포에 올릴 제목·요약

Title

docs, web: the first flash starts in download mode everywhere, /flash goes to the guide, and the README is rewritten

Body (the repo's pull request template)

## What
Three commits that bring the first-flash steps into one order across the site and the docs, and rewrite the README:

1. `web, docs:` The Play guide's 01 Flash (and /ko) starts in download mode on every first flash (hold BOOT, tap RST, let go), expects the Wi-Fi step after "Installation complete!" not to come (RST, Flash Patternflow again, Connect to Wi-Fi), and ends on the panel's own `patternflow-xxxx` network at `192.168.4.1` when that does not take; the device simulator draws the NETWORK screen's hotspot. The Build guide's flash card, the Pattern tab's notes and the breadboard page say the same thing. The bare `/flash` redirects to `/guide/play#flash`; `/flash/manifest.json` and `/flash/bin/*` are untouched. The docs that give the first flash (`firmware/README.md`, `PATTERN_GUIDE.md`, `SUPPORT.md`, `docs/assembly/`) use the same order, the indexes list the guide pages, the three case remixes and the bundles that exist, CONTRIBUTING gets a row for the interactive guide's copy, and the PR template asks which row a change is.
2. `docs:` The README opens with the manifesto's fixed lines (L1–L3) and three ways in (try it in the browser, build one, get one assembled). Paik is told once, in *Where it began*. **First light** comes after the build, with the steps it was missing: unplug before seating the DevKit, Origin as the sign of success, *Format storage* on the first Basics install. Stale lines are corrected against the repo.
3. `docs:` `BUILD_GUIDE.md` §8.1 follows the Play guide's Flash chapter step by step. §7 no longer seats the DevKit before it has firmware, so it is *Wiring* (`#7-wiring`), and Besoiobiy's case README cites the renumbered steps. The README's Crowd Supply lines read as the campaign stands: past its goal and open until 15 October.

## Why
The guide, the README, BUILD_GUIDE and the site each gave a different first flash. Download mode was a fallback for an empty port list, though every first flash needs it. The Wi-Fi step was described as if it always comes, though it usually doesn't after a download-mode install. The panel's own hotspot was missing. And `/flash`, which the device's Update page and every release's FLASHING.md point at, had no page. The README buried the way in under the story.

## Tested
- `web/`: `npm ci`, `npm run lint` (0 errors; the changed files show the same 5 `no-img-element` warnings they have on `main`), `npm run typecheck`, `npm run build`, `npm run check:ci` (vitest 35 files / 478 tests, including the new `flash.test.ts`, plus every smoke suite). All pass.
- `next start`: `/flash` returns 307 to `/guide/play#flash`; `/flash/manifest.json` and `/guide/play` return 200.
- `python3 .github/scripts/check_links.py`: all 623 relative links resolve.
- `firmware/` changes are README text only (no code). `check_boundaries.py` and `check_presets.py` pass anyway.

## Which row
A fix to a guide, a README or a spec (`docs-links`), and a fix to the interactive guide (`web-ci`).

---
- [x] Touches `web/` → it builds (`npm run build`)
- [x] Touches `firmware/` → README text only; the core still names no feature (`python firmware/toolchain/check_boundaries.py`)
- [x] Touches a markdown file → its relative links resolve (`python3 .github/scripts/check_links.py`)

체크리스트

한 일

c894a5f docs: BUILD_GUIDE flashes in the Play guide's order, and the README's campaign is still open      ← #9
9a68428 docs: the README opens with the fixed lines and three ways in, and First light follows the build  ← #8
04062dc web, docs: the first flash starts in download mode, /flash goes to the guide's Flash chapter, and the README is new from its first screen  ← #7
511e776 Merge pull request #491 from engmung/dev   ← 원래 레포 main

증거

작업용 파일 없음, 결과는 포크 dev 와 같다

$ git diff --name-only upstream/main HEAD | grep -E '^(\.claude/|\.github/pr-evidence/|incoming/)' || echo none
none
$ git diff --stat upstream/main HEAD | tail -1
 52 files changed, 858 insertions(+), 368 deletions(-)
$ git diff --stat HEAD origin/dev          # 포크 dev 와 다른 건 작업용 설정 하나뿐
 .claude/settings.json | 1 +
 1 file changed, 1 insertion(+)
$ git diff --name-only upstream/main HEAD -- firmware/ | grep -v '\.md$' || echo none
none

web-ci (원래 레포 기준, Node 22 로컬)

$ npm ci                → exit 0
$ npm run lint          → ✖ 12 problems (0 errors, 12 warnings)  exit 0
  (바뀐 .ts/.tsx 파일만 돌리면 5 warnings — 원래 레포 main 에서 같은 파일도 똑같이 5 warnings)
$ npm run typecheck     → tsc --noEmit  exit 0
$ npm run build         → ✓ Compiled successfully in 22.8s  exit 0
$ npm run check:ci      → exit 0
   ✓ src/components/guide/flash.test.ts (5 tests)
   ✓ src/lib/guide/deviceSim.test.ts (21 tests)
   ✓ src/components/sections/InsideGlobe/groups.test.ts (14 tests)
   Test Files  35 passed (35)
        Tests  478 passed (478)
   All module cache checks passed.

문서 링크·펌웨어 검사

$ python3 .github/scripts/check_links.py
all 623 relative links resolve
$ python3 firmware/toolchain/check_boundaries.py
boundary holds: 73 core files know none of 42 feature namespaces across 9 features
$ python3 firmware/toolchain/check_presets.py
presets in step: 34 twins, 14 web-only on purpose, 1 firmware-only on purpose

빌드한 사이트 (next start)

/flash               -> 307 http://localhost:3123/guide/play#flash
/flash/manifest.json -> 200
/guide/play          -> 200

실행법

git fetch https://github.com/Patternflow-lab/Patternflow claude/patternflow-upstream-docs-r4eab8
git checkout FETCH_HEAD
cd web && npm ci && npm run lint && npm run typecheck && npm run build && npm run check:ci
cd .. && python3 .github/scripts/check_links.py

원래 레포에 올릴 때: base engmung/Patternflow:main, head Patternflow-lab/Patternflow:claude/patternflow-upstream-docs-r4eab8. 제목과 본문은 위 「원래 레포에 올릴 제목·요약」 절의 것을 그대로 쓴다.

가정

🤖 Generated with Claude Code

https://claude.ai/code/session_01VaFtEmtx2AkdH1wnbQpV3Z

mbchars and others added 12 commits October 10, 2026 11:29
mbchars.py puts the remix's printed parts together from its STLs (no
assembled file exists): the three front sections where the joint bars'
36 mm insert pitch puts their lug holes, the covers on the sixteen inserts,
the USB retainer on its boss and the stands on the bottom edge, each step
checked against the README (410.28 x 176.16 x 42 mm), the board's encoder
grid, the 320 x 160 mm panel and boolean overlaps. assemble.mjs learns
ledTurn (the panel lies the long way here) and knobLook (the official knob,
printed white), and lib/looks.mjs pla_orange, the 3MF's own #F46B16. The
other three models rebuild byte-identical; the new one is 380 KB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QGBYm64PnfneJq2ZDJ8Gs7
…horizontal desktop one

The card is the remix README's own facts and photos (resized to 1200 px),
the preview shows the device in the case, and the switch is four tabs, two
by two on a phone. A case too wide for the view at the one scale (this one,
41 cm across on a desktop's tall canvas) is drawn smaller by as little as
keeps it clear of the arrows; every case still fits at the one scale on a
phone, and the three upright ones on a desktop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QGBYm64PnfneJq2ZDJ8Gs7
…review case

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QGBYm64PnfneJq2ZDJ8Gs7
…al-desktop

hardware+web: mbchars' horizontal desktop case as the third remix, and the fourth case in /build's 3D preview (supersedes engmung#488)
Found by accident, with the PCBs ordered ten minutes later; the 3D printer came
a month on, bought for the case, and the case was the first thing it printed.
Moscow was given, so the pin is on the city.

The blurb stops at the printer. The maker's note about making the patterns with
AI is left out on purpose, and there are no pronouns for the maker: the message
does not say.

Three photos: a pixel-art Mount Fuji beside a modular synth, a pixel-art frog
pond seen from above, and a cat plush in front of the panel.

groups.test.ts pins the number of countries on the real map; Russia is new, so
11 becomes 12.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
On the Build tab the name on the case's tab (Official, Besoiobiy,
SimonePDA, mbchars) stands over the device, on the build map's dark
highlight. It follows the pick at once, as the tab does, and reads
Official for a case whose model did not load. The knob hint moves under
it while it is up. Changelog also gets the line for the arrows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZuperZuche's build joins the map; the 3D preview names whose case it is
…e guide's Flash chapter, and the README is new from its first screen

The Play guide's 01 Flash (and /ko) puts hold BOOT, tap RST before Flash
Patternflow on every first flash, assumes the Wi-Fi step after
"Installation complete!" usually does not come (RST, Flash Patternflow
again, Connect to Wi-Fi), and ends on the panel's own patternflow-xxxx
network at 192.168.4.1 for when that does not take; the device simulator
draws the NETWORK screen's hotspot. The Build guide's flash card, the
Pattern tab's notes and the breadboard page give the same order. The bare
/flash, which the device's Update page and every release's FLASHING.md
point at, redirects to /guide/play#flash; /flash/manifest.json and
/flash/bin/* are untouched. flash.test.ts pins the card order and anchors.

The README opens with a one-line definition, the hero, the
photosensitivity warning, four doors (Build, Play, Make patterns, Add
sound) and First light; the story, community, facts and editions follow,
shorter. The docs that give the first flash (firmware/README.md,
PATTERN_GUIDE.md, SUPPORT.md, docs/assembly/) say the same order, the
indexes list the guide pages, the three case remixes and the bundles that
exist, and stale wording (the custom slots, "variant", the dead /flash
page) is gone. CONTRIBUTING.md gets a row for the interactive guide's
copy, and the pull request template asks for the row and the link check.

From #7 (caaf2c1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VaFtEmtx2AkdH1wnbQpV3Z
…rst light follows the build

The opening is L1 + L2 + L3 from docs/manifesto.md (Paik moves to Where it
began, in L5's own words), with Play one in your browser, Build one and Get
one assembled under the badges. First light moves below the build, gains the
steps it was missing (unplug before seating, Origin as the sign of success,
Format storage on the first Basics install) and states the J4 rule as data
never power on the DevKit's ports. Stale lines are corrected against the
repo: sound and MQTT shipped in editions, MIDI arrived in 3.9.0, 3.10.5
fixed four requests, and the photosensitivity warning is the manifesto's
full text.

From #8 (bfc4b22).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VaFtEmtx2AkdH1wnbQpV3Z
… campaign is still open

BUILD_GUIDE §8.1 now goes download mode first (hold BOOT, tap RST),
Flash Patternflow, the Wi-Fi as a second go after RST, the DevKit seated
with the power bank unplugged, then the panel's own patternflow-xxxx
network (K2 shows its name before the hotspot is up), then the Basics
pack: the Play guide's 01 Flash card for card. §7 no longer seats the
DevKit before it has firmware, so it is Wiring, and 7.4 names the step
that powers up. The README's First light points at §8 again, and Crowd
Supply reads as it stands: past its goal, open until 15 October; the
200% figure stays in the dated timeline. Besoiobiy's case README cites
the renumbered steps.

From #9 (16eca1b).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VaFtEmtx2AkdH1wnbQpV3Z
@patternflow-bot patternflow-bot changed the title [WIP] 원래 레포로 올릴 깨끗한 브랜치 — #7·#8·#9 문서·가이드 변경만, engmung/Patternflow main 위에 (기록용) [DONE] 원래 레포로 올릴 깨끗한 브랜치 — #7·#8·#9 를 engmung/Patternflow main 위 커밋 셋으로 (기록용, 머지하지 않음) Oct 12, 2026
@patternflow-bot
patternflow-bot marked this pull request as ready for review October 12, 2026 12:50
@patternflow-bot
patternflow-bot merged commit 60d9f21 into main Oct 12, 2026
@patternflow-bot
patternflow-bot deleted the claude/patternflow-upstream-docs-r4eab8 branch October 12, 2026 12:50
@patternflow-bot
patternflow-bot restored the claude/patternflow-upstream-docs-r4eab8 branch October 12, 2026 12:50
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.

4 participants