Skip to content

docs(readme): markdown-only + mobile-safe listing (no raw HTML)#71

Merged
sgwannabe merged 1 commit into
mainfrom
docs/readme-markdown-mobile
May 25, 2026
Merged

docs(readme): markdown-only + mobile-safe listing (no raw HTML)#71
sgwannabe merged 1 commit into
mainfrom
docs/readme-markdown-mobile

Conversation

@sgwannabe
Copy link
Copy Markdown
Contributor

@sgwannabe sgwannabe commented May 25, 2026

The App Directory listing renders the repo README, and Reddit's renderer is markdown-only — it printed our raw HTML (<div>, <img>, <strong>, <details>) as literal text, showed no banner, and the wide ASCII diagram + 5-col table caused horizontal overflow on mobile.

Rewrite the README in pure markdown:

  • Banner → markdown image with an absolute raw.githubusercontent.com URL (responsive; renders on GitHub and the listing). The current banner is the original-robot art (no Snoo), so it's safe on the reviewed listing.
  • Dropped all raw HTML (<div align>, <strong>, <br>).
  • vs-AutoMod table → bullets (wide tables overflow on narrow mobile).
  • Moved architecture (ASCII diagram + by-construction guarantees) and the developer reference into docs/architecture.md + docs/for-developers.md, linked from the README — <details> folding isn't supported on the listing, so the listing stays short + mod-facing and the depth lives in linked docs.

The listing picks this up at the next devvit publish (README is a publish-time snapshot); GitHub renders it immediately. No content lost — reorganized + de-HTML'd.

🤖 Generated with Claude Code

Summary by CodeRabbit

📋 릴리스 노트

  • Documentation
    • README 구조를 마크다운 기반의 간결한 레이아웃으로 재구성하여 가독성 개선
    • 핵심 안전성 기능 및 AutoModerator와의 비교 설명 최적화
    • 새로운 아키텍처 문서 추가 (시스템 원칙, 런타임 보장, 저장소 범위, 테스트 전략)
    • 새로운 개발자 가이드 추가 (실행 흐름, 스크립트 설명, 디렉터리 구성)

Review Change Stack

Reddit's App Directory README renderer is markdown-only: it shows raw HTML
(<div>, <img>, <strong>, <details>) as literal text, and the wide ASCII
diagram + 5-column table forced horizontal overflow on mobile. Rewrite the
README in pure markdown:

- Banner: markdown image with an absolute raw-GitHub URL (responsive,
  renders on both GitHub and the listing) instead of an HTML <img> (which
  rendered as literal text on the listing).
- Drop all raw HTML (centered <div>, <strong>, <br>).
- Convert the vs-AutoMod comparison table to bullets (wide tables overflow
  on narrow mobile).
- Move the architecture (ASCII diagram + by-construction guarantees) and the
  developer reference into docs/architecture.md + docs/for-developers.md,
  linked from the README. <details> folding isn't supported on the Reddit
  listing, so keeping the listing short + mod-facing means the depth lives in
  linked docs.

The listing reflects this at the next publish (the README is a publish-time
snapshot); GitHub renders it immediately.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 25, 2026

변경 사항 요약

README와 신규 문서 파일을 통해 프로젝트 문서를 체계적으로 재구성했습니다. README를 마크다운 중심으로 단순화하고, 아키텍처 및 개발자 가이드 문서를 별도로 분리하여 각 대상층(사용자, 아키텍처 이해자, 개발자)의 요구사항을 명확히 분담합니다.

변경 사항

문서 재구성 및 확장

Layer / File(s) 요약
README 마크다운 레이아웃 재구성
README.md
상단 배너·소개·마케팅 섹션을 HTML 중심에서 마크다운 기반으로 변경합니다. 안전성(드라이런, 30일 Undo, 가드된 액션, AI 비사용), AutoModerator 비교, 도메인·권한 설명을 설명형 문단 및 불릿으로 재정리하고, 상세 아키텍처/개발자 체크리스트 블록을 제거하여 전체 길이를 단축합니다.
아키텍처 문서 추가
docs/architecture.md
vibe-mod의 핵심 설계 원칙(build-time AI, runtime determinism), 규칙 편집 시 LLM 호출 및 런타임 결정적 평가 파이프라인, 런타임 보장(LLM 호출 0, 규칙당 1회, 30일 Undo, 콘텐츠 비전송), Redis 상태 범위, fact bag 평가, shadow/live 모드, 멀티룰 충돌 처리, 테스트 전략을 체계적으로 문서화합니다.
개발자 가이드 문서 추가
docs/for-developers.md
개발 명령어 워크플로우(npm install, typecheck, test, acceptance, build, dev), 각 스크립트 목적 및 환경 요구사항(OPENAI_API_KEY 등), 소스 디렉터리 구조, CI 검증 순서, Dependabot 정책을 정리합니다.

관련 PR

  • Two-Weeks-Team/vibe-mod#67: README.md의 동일 섹션(What it does, Why a new rule, AutoModerator 비교, Fetch domains)을 유사하게 재구조화하고 <details> 블록으로 아키텍처/개발자 콘텐츠를 정리합니다.
  • Two-Weeks-Team/vibe-mod#63: README.md 상당 부분을 사용자/안전성/개발자 흐름 중심으로 재작성하며, 본 PR은 추가로 docs/architecture.mddocs/for-developers.md를 신규 작성합니다.

예상 코드 검토 노력

🎯 1 (Trivial) | ⏱️ ~5 분

🐰 문서의 정원을 꾸미네요,
마크다운 꽃들이 활짝 피고,
아키텍처 나무 심고, 개발자 길 닦으니,
모두가 길을 잃지 않을 거예요! 📚✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 변경의 핵심 내용을 명확하게 요약하고 있으며, 마크다운 전환과 모바일 안전성 개선이라는 주요 목표를 잘 반영합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/readme-markdown-mobile

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the project's documentation by extracting the detailed architecture and developer-focused sections from the main README.md into two new dedicated files: docs/architecture.md and docs/for-developers.md. The README.md has been updated to be more concise, providing high-level overviews and linking to the new documentation for deeper technical details. Review feedback suggests improving the navigability of these new documents by converting plain text file paths and section references into functional Markdown links.

Comment thread docs/architecture.md
| LLM calls per rule | exactly **1**, at edit time | [`src/server/routes/compose.ts`](../src/server/routes/compose.ts) |
| New-rule blast radius for first 24h | **0 live actions** (shadow default on) | `shadow: true` in [`rule-schema.ts`](../src/shared/rule-schema.ts) |
| Live action reversibility | **100% for 30 days** (per-action undo) | [`src/server/executor.ts`](../src/server/executor.ts) |
| Reddit content sent to the LLM | **none** (only the mod's typed sentence) | README → _Fetch domains_ |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

This reference to the README section is currently plain text. Converting it to a Markdown link improves the documentation's usability by allowing readers to navigate directly to the detailed explanation of fetch domains, especially since other entries in this table are already linked to their respective source files.

Suggested change
| Reddit content sent to the LLM | **none** (only the mod's typed sentence) | README → _Fetch domains_ |
| Reddit content sent to the LLM | **none** (only the mod's typed sentence) | [README → _Fetch domains_](../README.md#fetch-domains) |

Comment thread docs/for-developers.md
Comment on lines +21 to +22
| `docs/devvit-setup-guide.md` | how to take this repo to a published Devvit app (wizard → upload → settings → playtest → publish) |
| `docs/architecture.md` | build-time-AI / runtime-determinism design + the by-construction guarantees |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

These documentation paths are currently plain text. Since these files reside in the same directory, converting them to relative Markdown links would improve navigability within the documentation, maintaining consistency with how for-developers.md is linked from the architecture document.

Suggested change
| `docs/devvit-setup-guide.md` | how to take this repo to a published Devvit app (wizard → upload → settings → playtest → publish) |
| `docs/architecture.md` | build-time-AI / runtime-determinism design + the by-construction guarantees |
| [docs/devvit-setup-guide.md](./devvit-setup-guide.md) | how to take this repo to a published Devvit app (wizard → upload → settings → playtest → publish) |
| [docs/architecture.md](./architecture.md) | build-time-AI / runtime-determinism design + the by-construction guarantees |

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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 `@docs/architecture.md`:
- Around line 6-23: The fenced code block in docs/architecture.md (the
multi-line ASCII diagram wrapped by triple backticks) is missing a language tag
causing markdownlint MD040; update that specific fenced block (the diagram
starting "Moderator types a rule" and ending with "rate-limit breaker (5 min)")
to include a language specifier like "text" (e.g., change ``` to ```text) so the
linter recognizes it as a non-code/text block.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 403d2a6f-23df-4e00-b0a4-35516a98eed3

📥 Commits

Reviewing files that changed from the base of the PR and between 6549f25 and e27e62d.

📒 Files selected for processing (3)
  • README.md
  • docs/architecture.md
  • docs/for-developers.md

Comment thread docs/architecture.md
Comment on lines +6 to +23
```
Moderator types a rule
│ (only the moderator's sentence is sent — never Reddit content)
OpenAI gpt-5.4-mini ──► JSON ──► Zod strict parse + action whitelist ──► rules:draft (Redis)
(build-time only) (reject if invalid)
│ dry-run preview / activate
rules:active (Redis)
Reddit triggers (onPostSubmit / onCommentSubmit / onPostReport / onCommentReport / onPostFlairUpdate)
Deterministic evaluator (pure TS, 0 network, 0 LLM) ──► fact bag from the item + author + sub state
Action executor ──► shadow? log only : live? act + write 30-day undo token + audit entry
Scheduler: audit retention (daily) · dry-run replay · shadow-promote check (15 min) · rate-limit breaker (5 min)
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

펜스 코드블록에 언어 지정이 빠져 markdownlint(MD040) 경고가 발생합니다.

``` 대신 예: ```text로 언어를 명시해 주세요.

수정 예시
-```
+```text
 Moderator types a rule
         │  (only the moderator's sentence is sent — never Reddit content)
         ▼
 OpenAI gpt-5.4-mini   ──►  JSON  ──►  Zod strict parse + action whitelist  ──►  rules:draft (Redis)
@@
 Scheduler: audit retention (daily) · dry-run replay · shadow-promote check (15 min) · rate-limit breaker (5 min)
-```
+```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 6-6: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 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 `@docs/architecture.md` around lines 6 - 23, The fenced code block in
docs/architecture.md (the multi-line ASCII diagram wrapped by triple backticks)
is missing a language tag causing markdownlint MD040; update that specific
fenced block (the diagram starting "Moderator types a rule" and ending with
"rate-limit breaker (5 min)") to include a language specifier like "text" (e.g.,
change ``` to ```text) so the linter recognizes it as a non-code/text block.

@sgwannabe sgwannabe merged commit 5dfc8df into main May 25, 2026
2 checks passed
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.

1 participant