Page 1 of 17
System Requirements Document for wise-500
1. Introduction
wise-500 is a public, fully automated Hebrew-to-Chinese news website. It publishes Chinese translations of Israeli Hebrew-language news covering politics, military affairs, and the international situation, and it is open to anyone — no login, no account, no registration.
The product intent is a daily machine sweep: on each calendar day the system automatically fetches or searches Hebrew-language Israeli news, translates the collected items into Chinese, and publishes them in reverse-chronological, date-grouped pages. Every published item carries its date and its source URL. Translation is performed with free, non-AI translation tooling; no artificial intelligence is connected anywhere in the pipeline. The site is entirely automatic and contains no search box of any kind.
The audience is a Chinese-reading public visitor who cannot read the Hebrew original and therefore depends on the page for provenance: the date, the source URL, and an honest marker of whether the translation is full text or a capped excerpt.
Page 2 of 17
2. System Overview
wise-500 is delivered as a public website with two first-party pages — Landing and News Detail — both reachable anonymously by any visitor. Behind them runs a scheduled backend pipeline that, once per day, collects Hebrew-language Israeli news on politics, military affairs, and international affairs, translates each item into Chinese using free non-AI translation tools, and stores the result with its date and source URL.
Current accepted behavior:
- Automated daily collection. The system runs a date-driven collection job each day that fetches or searches Hebrew-language Israeli news in the accepted subject areas.
- Non-AI translation. Collected Hebrew text is translated into Chinese with free translation tools. No AI service is integrated.
- Full text preferred, 500-character cap otherwise. Each day's news is translated in full wherever possible; where full translation is not possible, the Chinese translation is limited to 500 characters or fewer.
- Date-ordered pagination. Published news is presented in date order and split across pages.
- Mandatory provenance. Every news item displays its date and its source URL.
- No search. The site is fully automatic and provides no search box.
- Minimal white design. The interface is minimal, with a white ground.
Actors:
- 中文读者(公开访客) — the only accepted active human persona. An anonymous public visitor who reads the date-paginated Chinese translations and opens individual items.
- System processes — the scheduled collection, translation, and publication pipeline. These are non-persona actors; no human operates them.
Narrow exclusions:
- No search box, no search field, no filter control implying the corpus is queryable.
- No AI integration of any kind.
- No login, account, or registration for visitors.
- No user-submitted content, comments, or editing of translations by visitors.
Page 3 of 17
2a. Product Interpretation and Delivery Boundary
Delivery ownership. wise-500 is a first-party public website. Both accepted pages — Landing and News Detail — are owned by the application and are reachable by anyone, with no access requirement. There is no protected area, no sign-in, and no account lifecycle: the source explicitly states the site is published externally and that anyone may access it, and the accepted access contract records none for both pages. No identity establishment, invitation, or provisioning flow is part of this product.
Automation ownership. The daily collection, translation, and publication work is background automation owned by the system. No accepted human initiates, controls, resumes, or completes that work; the visitor's role begins at reading. The visitor-facing surface is therefore read-only with respect to the news corpus.
Current vs. future. Everything described in this document is current. No future-horizon requirements were accepted in the authoritative thread.
Boundary of the translation constraint. The 500-character limit is a constraint on the translation output for items that cannot be translated in full — it is not a limit on the site, the corpus, the number of items per day, or the length of fully translated articles.
2c. Page Content and Component Coverage
Page 4 of 17
Landing
- Information and state. The public entry surface. A full-width masthead band on plain white, followed immediately by the news index grouped by date. The index is already in progress on first view — it is a typographic index, not a promotional hero.
- Masthead band. Wordmark
WISE·500 at 72px Archivo 600 (mobile 40px), flush left at the 1280px outer frame's left margin, with a small red square in the wordmark's counter. Directly beneath it, the Chinese subtitle 以色列希伯来语新闻 · 自动中文译文 at 15px in grey. Right-aligned on the same baseline: today's Hebrew date in Archivo 500, the Chinese date below it, and the line 每日自动抓取 · 无搜索 · 不使用 AI. A 1px black rule spans the full viewport width beneath the band.
- Running source ticker. The masthead rule carries a slow 60-second linear marquee of today's collected Hebrew source names in 12px uppercase Archivo, pausing on hover and replaced by a wrapped static list under
prefers-reduced-motion.
- Date groups. News is grouped by date. Each group opens with a sticky date rule in the form
2026年2月14日 · 星期六 · 14 条, followed by a stack of headline blocks. A hairline separates every date group.
- Headline block. Each item shows: a 3px red
#E4002B tab on its left edge; an 8px square code chip carrying 政 / 军 / 际; the category label in red; the Chinese headline in Noto Serif SC at 30px (mobile 24px), up to two lines; and a metadata row in grey #8A8A85 in the fixed order 2026-02-14 · timesofisrael.co.il · 节译 500字 (date · source host · translation honesty marker). No images appear in the list.
- Primary action. Open a news item, navigating to News Detail.
- Supporting actions. Move between pages of the date-ordered index; hover a headline (the red code chip turns solid and the headline slides 4px right over 140ms).
- Pagination. A plain row of numbered squares at the bottom of the index; the current page is filled
#F4F4F2 with a black rule.
- Domain entities. News item (date, source URL, source host, category code, Chinese headline, translation mode, character count), date group, page of the date-ordered index.
- Component responsibilities. Masthead band; running source ticker; sticky date rule; headline block with code tab, code chip, category label, headline, and provenance row; pagination row.
- States.
- Loading: the index renders progressively; date groups fade in at 180ms opacity, staggered 40ms per headline, capped at the first 6 items.
- Empty: when no items exist for a date range, the index shows the date rule with a zero count and no headline blocks beneath it, rather than an error.
- Success: date groups with headline blocks and a working pagination row.
- Error / recovery: if the index cannot be loaded, the visitor sees a plain white page with the masthead and a single grey line stating that the index is unavailable; reloading the page is the recovery path. No retry control is added to the visitor surface.
- Access. Anonymous; no login required.
Page 5 of 17
News Detail
- Information and state. A single news item's Chinese translation, its date, and its source URL, in the same 720px reading column as the index.
- Provenance header. Above the headline: the source URL in 12px uppercase Archivo with 0.18em letterspacing, then a hairline, then the Chinese headline at 44px (mobile 28px). The citation precedes the story.
- Body. One unbroken column of Chinese body text in Noto Serif SC at 17px with 1.75 leading, measure capped at 34em.
- Translation honesty marker. Where the translation is a capped excerpt, a notice strip filled
#F4F4F2 reads 原文不可全译 · 500字上限, and a fixed 500-character counter appears at the end of the truncated translation. Where the translation is full text, the item is marked as full text and no counter appears.
- Pipeline diagram. A one-line monochrome diagram at the page footer —
希伯来语源 → 抓取 → 免费翻译 → 500字上限 → 中文 — drawn in 1px black strokes on white. This is the site's only image.
- Primary action. Read the translation.
- Supporting actions. Follow the source URL to the original Hebrew article; return to the date-ordered index.
- Domain entities. News item (date, source URL, source host, category code, Chinese headline, Chinese body, translation mode, character count).
- Component responsibilities. Provenance header; headline; body column; translation honesty notice strip and character counter; pipeline diagram footer; return-to-index link.
- States.
- Loading: the detail column renders with the provenance header first, then the headline, then the body.
- Empty: not applicable — a detail page exists only for an item that was published.
- Success: provenance header, headline, body, and either a full-text marker or the capped-excerpt notice with counter.
- Error / recovery: if the item cannot be loaded, the page shows the masthead and a single grey line stating that the item is unavailable, with a link back to the index as the recovery path.
- Access. Anonymous; no login required.
Page 6 of 17
3. Functional Requirements
FR-1 — Public, open access
As a 中文读者(公开访客), I should be able to reach and read the site without any login, account, or registration, so that the published news is open to anyone.
- Provenance: explicit
- Lifecycle: initiator — any visitor; trigger — opening the site URL; observable result — the Landing page renders with the news index; access state — anonymous, no access requirement; failure/recovery — if the site is unreachable, the visitor retries by reloading; continuation — the visitor browses the date-ordered index.
- Acceptance: no sign-in, account, or registration step exists anywhere in the visitor path; both accepted pages render for an anonymous visitor.
FR-2 — Automated daily collection of Hebrew-language Israeli news
As the system, I should automatically fetch or search Israeli Hebrew-language news on politics, military affairs, and international affairs according to the current date, so that each day's news is collected without human action.
- Provenance: explicit (collection behavior); required_inference (date-driven scheduling)
- Lifecycle: initiator — system process; trigger — the daily date-driven run; observable result — a set of collected Hebrew-language news items for that day; access state — not visitor-facing; failure/recovery — a failed collection run leaves the previously published index intact and the next scheduled run retries; continuation — collected items proceed to translation.
- Acceptance: a scheduled run executes per day without any human trigger; collected items are limited to the accepted subject areas and to Hebrew-language Israeli sources.
FR-3 — Automatic non-AI translation into Chinese
As the system, I should automatically translate collected Hebrew news into Chinese using free translation tools, without connecting any AI, so that readers receive Chinese text produced without artificial intelligence.
- Provenance: explicit (no AI, free translation tools); required_inference (automatic execution)
- Lifecycle: initiator — system process; trigger — completion of a collection run; observable result — Chinese translated text attached to each collected item; access state — not visitor-facing; failure/recovery — an item that cannot be translated is not published with a fabricated translation; the next run retries; continuation — translated items proceed to publication.
- Acceptance: no AI service is integrated anywhere in the pipeline; translation is performed by free translation tooling.
FR-4 — Full translation preferred, 500-character cap otherwise
As the system, I should translate each day's news in full wherever possible, and where full translation is not possible, limit the Chinese translation to 500 characters or fewer, so that readers get as much of the article as can be honestly delivered.
- Provenance: explicit
- Lifecycle: initiator — system process; trigger — translation of a collected item; observable result — either a full-text translation or a capped translation of ≤500 characters; access state — not visitor-facing; failure/recovery — an item that cannot be translated in full is published as a capped excerpt rather than dropped; continuation — the item is published with its translation honesty marker.
- Acceptance: no published translation exceeds 500 characters when it is not a full translation; the 500-character limit is never applied to items that were translated in full.
FR-5 — Date-ordered paginated presentation
As a 中文读者(公开访客), I should see the news presented in date order and split across pages, so that I can read the most recent day first and move back through earlier days.
- Provenance: explicit
- Lifecycle: initiator — visitor; trigger — opening Landing; observable result — date groups ordered by date, with a pagination row at the bottom; access state — anonymous; failure/recovery — if the index cannot load, the visitor reloads; continuation — the visitor moves to another page of the index or opens an item.
- Acceptance: items are grouped and ordered by date; a pagination control moves between pages of the index.
FR-6 — Mandatory date and source URL on every item
As a 中文读者(公开访客), I should see the date and the source URL on every news item, so that I can trace each translation back to its Hebrew original.
- Provenance: explicit
- Lifecycle: initiator — visitor; trigger — viewing a headline block or a detail page; observable result — the date and source URL are displayed for the item; access state — anonymous; failure/recovery — an item lacking a date or source URL is not published; continuation — the visitor can follow the source URL to the original.
- Acceptance: every published item displays its date and its source URL; no item is published without both.
FR-7 — No search box
As a 中文读者(公开访客), I should encounter no search box anywhere on the site, so that the fully automatic, unqueryable nature of the corpus is clear.
- Provenance: explicit
- Lifecycle: initiator — visitor; trigger — viewing any page; observable result — no search field, search control, or filter implying queryability is present; access state — anonymous; failure/recovery — not applicable; continuation — the visitor navigates by date and pagination only.
- Acceptance: no search input exists on Landing or News Detail.
FR-8 — Minimal white design
As a 中文读者(公开访客), I should read the site on a minimal white ground, so that the news index reads as a quiet, exact record.
- Provenance: explicit
- Lifecycle: initiator — visitor; trigger — viewing any page; observable result — a white
#FFFFFF ground with black type, grey provenance metadata, and red used only as a category code; access state — anonymous; failure/recovery — not applicable; continuation — the visitor reads the index and detail pages.
- Acceptance: the page ground is white; no tinted section bands, no cards with shadows, no rounded corners.
FR-9 — Daily scheduled execution of the collection pipeline
As the system, I should run the news collection and translation flow automatically on a daily schedule driven by the current date, so that the accepted daily-sweep behavior is executable without human action.
- Provenance: required_inference
- Lifecycle: initiator — system process; trigger — the daily schedule; observable result — a completed collection-and-translation run for the day; access state — not visitor-facing; failure/recovery — a missed or failed run does not corrupt already-published items; the next scheduled run retries; continuation — newly translated items are published into the date-ordered index.
- Acceptance: the pipeline runs on a daily schedule with no human trigger.
FR-10 — Free, non-AI translation tooling
As the system, I should use free translation tools that do not connect to any artificial intelligence service, so that the explicit no-AI constraint holds end to end.
- Provenance: required_inference
- Lifecycle: initiator — system process; trigger — translation step; observable result — Chinese text produced by free non-AI translation tooling; access state — not visitor-facing; failure/recovery — if a free translation tool is unavailable, the item is not published with a fabricated translation; the next run retries; continuation — translated items are published.
- Acceptance: no AI provider is called at any point in the pipeline.
FR-11 — Preservation of date, source URL, and the 500-character cap through publication
As the system, I should retain each item's date and source URL and enforce the 500-character limit on translations that are not full text, so that published items remain traceable and honest.
- Provenance: required_inference
- Lifecycle: initiator — system process; trigger — publication of a translated item; observable result — the stored item carries its date, source URL, and either a full-text marker or a capped translation of ≤500 characters; access state — not visitor-facing; failure/recovery — an item missing its date or source URL is withheld from publication; continuation — the item appears in the date-ordered index with its provenance row.
- Acceptance: every published item carries a date and source URL; no non-full translation exceeds 500 characters.
Page 7 of 17
4. User Personas
Page 8 of 17
中文读者(公开访客)
Product context. A Chinese-reading member of the public who wants to follow Israeli politics, military affairs, and the international situation but cannot read Hebrew. The site is the only place where this reader meets that material in Chinese, and the reader has no way to verify the Hebrew original directly. The reader arrives anonymously, from a link or a bookmark, on a plain white page that is already a running index of the day's news.
Primary goal. Read the day's Israeli Hebrew-language news in Chinese, in date order, with enough provenance to know when each item was published and where it came from.
Distinct accepted responsibilities.
- Browse the date-ordered, paginated index on Landing, reading the most recent date group first and moving back through earlier dates.
- Read each headline block's category code (政 / 军 / 际), Chinese headline, and grey provenance row.
- Open an individual item on News Detail to read the Chinese translation.
- Read the translation honesty marker to know whether the item is a full translation or a capped excerpt of 500 characters or fewer.
- Follow the source URL to the original Hebrew article when the reader wants to check the source.
- Return to the index and continue reading other items or earlier dates.
Relevant inputs and decisions. The reader decides which date group and which headline to open, and whether to follow the source URL. The reader reads the date, the source host, and the translation honesty marker as the basis for how much to rely on the translation. The reader never supplies input to the system: there is no search box, no filter, and no account.
Interactions with other accepted participants. The reader is the only accepted human participant. The reader's counterpart is the system pipeline, which has already collected and translated the items before the reader arrives; the reader sees only the published result. The reader does not interact with the collection or translation process, and cannot trigger, pause, or correct it.
Observable success. The reader has read the day's Chinese translations in date order, has seen the date and source URL for every item read, and knows for each item whether it was translated in full or capped at 500 characters.
Source-backed constraints on this role. No login, no account, no registration. No search box. Access is open to anyone.
Page 9 of 17
5. Core User Flows
Flow 1 — Reading the day's news index
- Starting context. The visitor opens the wise-500 site URL anonymously. No login or account exists.
- Owner. Landing.
- Action. The visitor reads the masthead band: the wordmark
WISE·500, the Chinese subtitle 以色列希伯来语新闻 · 自动中文译文, today's Hebrew date and the Chinese date, and the line 每日自动抓取 · 无搜索 · 不使用 AI. The running source ticker moves slowly along the masthead rule and pauses if the visitor hovers it.
- Observable result. Immediately below the 1px black rule, the first date group is already in progress: a sticky date rule reading, for example,
2026年2月14日 · 星期六 · 14 条, followed by headline blocks.
- Action. The visitor reads a headline block: the 3px red tab, the 8px code chip (政 / 军 / 际), the red category label, the Chinese headline, and the grey provenance row
2026-02-14 · timesofisrael.co.il · 节译 500字.
- Observable result. The visitor knows the item's date, its source host, and whether the translation is full text or a capped excerpt.
- Continuation. The visitor either opens an item (Flow 2) or moves to the pagination row at the bottom of the index and selects another page to read earlier dates.
- Failure and recovery. If the index cannot be loaded, the visitor sees the masthead and a single grey line stating that the index is unavailable; reloading the page is the recovery path. No retry control is added.
Flow 2 — Reading a single translated item
- Starting context. The visitor is on Landing and has chosen a headline block.
- Owner. News Detail.
- Action. The visitor opens the item.
- Observable result. The detail page opens with the provenance header above the headline: the source URL in 12px uppercase Archivo with 0.18em letterspacing, then a hairline, then the Chinese headline at 44px. The citation precedes the story.
- Action. The visitor reads the Chinese body in one unbroken column.
- Observable result. Where the translation is full text, the item is marked as full text. Where the translation is a capped excerpt, the
原文不可全译 · 500字上限 notice strip appears and a fixed 500-character counter sits at the end of the truncated translation.
- Action (optional). The visitor follows the source URL to the original Hebrew article.
- Observable result. The visitor has read the Chinese translation and knows its date, its source, and whether it was translated in full or capped at 500 characters.
- Continuation. The visitor returns to the date-ordered index and continues reading other items or earlier dates.
- Failure and recovery. If the item cannot be loaded, the page shows the masthead and a single grey line stating that the item is unavailable, with a link back to the index as the recovery path.
Page 10 of 17
Flow 3 — The daily automated sweep (system work, no human participant)
- Starting context. The daily schedule fires, driven by the current date. No human triggers it.
- Owner. System process.
- Action. The system fetches or searches Israeli Hebrew-language news on politics, military affairs, and international affairs for that day.
- Observable result. A set of collected Hebrew-language items for the day.
- Action. The system translates each collected item into Chinese using free translation tools, with no AI service connected.
- Observable result. Each item carries Chinese translated text. Items that can be translated in full are translated in full; items that cannot are limited to 500 characters or fewer.
- Action. The system attaches each item's date and source URL and publishes the item into the date-ordered index.
- Observable result. The new items appear in the correct date group on Landing, with their provenance rows, and are readable on News Detail.
- Failure and recovery. If a collection or translation run fails, already-published items remain intact and the next scheduled run retries. An item that cannot be translated is not published with a fabricated translation, and an item missing its date or source URL is withheld from publication.
- Continuation. The visitor's next visit to Landing shows the updated index.
Page 11 of 17
6. Visuals Colors and Theme
Muse and headline. Peter Saville — a coded news index. The page's content is metadata, and the design makes metadata the whole visual event: one borrowed diagram, one exact spot colour, a neutral grotesque at small precise sizes, and a lot of silence around it.
Mode. Light only. White is the ground, unbroken — no tinted sections, no off-white page bands.
Colour tokens (exact hex, by role).
| Role | Token | Value |
|---|
| Background | --bg | #FFFFFF |
| Surface (notice strip, current-page chip) | --surface | #F4F4F2 |
| Text / primary | --text | #111111 |
| Accent — category code only | --accent | #E4002B |
| Muted — provenance metadata, hairline rules | --muted | #8A8A85 |
Colour rules. #E4002B is used ONLY as a category code: a 3px tab on the left edge of a headline block, and the colour of the 军事 / 政治 / 国际 code label. Red must never fill a button, never become a background, never appear twice in one viewport row, and never sit behind readable text. #8A8A85 is reserved for provenance metadata (date, source host, character count) and hairline rules. #F4F4F2 appears only as the fill of the 原文不可全译 · 500字上限 notice strip and the pagination current-page chip. Links are black with a 1px underline; visited state is grey. No blue, indigo, violet, or teal anywhere.
Proportion target. ~88% white, 9% black, 2% grey, 1% red.
Typography.
| Role | Family | Weight | Size / leading |
|---|
| Headings (Latin) | Archivo | 600 | -0.02em tracking, flush-left ragged-right |
| Chinese headlines | Noto Serif SC | 500 | larger optical size, 1.15 line-height |
| Category codes and dates | Archivo | 500 | 12px, uppercase, 0.18em letterspacing |
| Body | Noto Serif SC | — | 17px, 1.75 leading |
Type scale. 1.25 modular on a 4px baseline: 12 (code/date) / 15 (meta) / 17 (body zh, 1.75 leading) / 22 (detail deck) / 30 (list headline, mobile 24) / 44 (detail headline, mobile 28) / 72 (masthead wordmark, mobile 40). Measure capped at 34em for Chinese body copy. No bold-italic, no underline, no display serif swagger: authority comes from size and silence, not weight.
Shape language. Zero radii everywhere — 0px on every block, chip, input, and image frame. Structure is expressed with 1px rules: a hairline under the masthead, a hairline between every date group, and a 3px red tab as the only "icon" in the system. No shadows, no borders on cards because there are no cards. The only permitted geometry is the rectangle and the hairline; the one allowed exception is the 8px square code chip carrying 政 / 军 / 际.
Spacing rhythm. 4px baseline grid. A single 720px reading column centred on plain white, inside a 1280px outer frame that carries the masthead rule and the running date ticker.
Imagery style. No photography, no illustration, no flags, no stock newsroom imagery, no gradient blobs. The imagery is the code system itself: red category chips, hairline rules, the running source-name ticker, and — on the detail page — the single borrowed artefact of a small monochrome diagram of the translation pipeline (希伯来语源 → 抓取 → 免费翻译 → 500字上限 → 中文) drawn in 1px black strokes on white. Source favicons are rendered as 16px monochrome letterforms, never as colour logos.
Page 12 of 17
7. Signature Design Concept
The masthead rule that is also a wire.
The first screen is not a hero in the SaaS sense — it is a masthead and an index that begins immediately. A full-bleed white band holds the wordmark WISE·500 at 72px Archivo 600, flush left at the 1280px frame's left margin, with the Chinese subtitle 以色列希伯来语新闻 · 自动中文译文 at 15px in grey directly beneath it. To the right on the same baseline sits a right-aligned block: today's Hebrew date in Archivo 500, the Chinese date below it, and 每日自动抓取 · 无搜索 · 不使用 AI.
A 1px black rule spans the full viewport width beneath this band — and that rule carries the site's one piece of live information: a 60-second slow marquee of today's collected Hebrew source names in 12px uppercase Archivo. It pauses on hover and becomes a wrapped static list under prefers-reduced-motion. The rule is simultaneously the masthead's underline and the running ticker of a coded archive.
Immediately below the rule, the first date group starts — red code chip, headline, grey provenance row — so the visitor's first impression is a typographic index already in progress, not a promise about one. The only colour on the first screen is the red chips and the small red square in the wordmark's counter.
This concept recomposes only accepted content and states: the wordmark, the dates, the automation line, the source names, the date groups, the code chips, the headlines, and the provenance rows. It adds no behavior, no page, and no destination.
Page 13 of 17
8. Interaction Model & Motion Direction
Interaction Model: Static
Motion Tempo: still
Hero Dimensionality: flat
Landing Hero Motion Brief.
- Focal subject. The masthead band and the 1px black rule beneath it, carrying the running line of today's collected Hebrew source names. The index below is already in progress.
- Input → transformation → outcome thesis. The daily automated sweep (input) produces a set of collected Hebrew source names and translated items (transformation), which appear as a slow running ticker on the masthead rule and as date-grouped headline blocks below it (outcome). The motion states that the page is a live record of a machine sweep, not a static brochure.
- Motion vocabulary. Near-still. Exactly two motions exist:
- A 180ms opacity fade as a date group enters the viewport, staggered 40ms per headline, capped at the first 6 items.
- The masthead's running line of today's collected Hebrew source names — a slow 60s linear marquee that pauses on hover.
Hover on a headline turns the red code chip solid and slides the headline 4px right over 140ms.
- Composed first frame. Full-bleed white band;
WISE·500 at 72px Archivo 600 flush left; the Chinese subtitle at 15px grey beneath it; the right-aligned Hebrew date, Chinese date, and 每日自动抓取 · 无搜索 · 不使用 AI; the 1px black rule spanning the viewport with the source-name ticker running along it; and the first date group already visible below the rule with its red code chip, headline, and grey provenance row.
- Reduced-motion state. Under
prefers-reduced-motion, the marquee is replaced by a wrapped static list of today's Hebrew source names, and the date-group fade and headline hover slide are removed; the index remains fully readable and every item remains fully in view.
- Prohibited motion. No parallax, no scroll-jacking, no reveal-on-scroll beyond the first fold.
Page 14 of 17
9. Non-Functional Requirements
NFR-1 — Public availability. The site is published externally and reachable by anyone, with no login, account, or registration. Provenance: explicit. Rationale: the source states the site is published externally and anyone may access it.
NFR-2 — No AI integration. No artificial intelligence service is connected anywhere in the collection, translation, or publication pipeline. Provenance: explicit. Rationale: the source explicitly requires no AI and free translation tools.
NFR-3 — Free translation tooling. Translation is performed with free translation tools. Provenance: explicit. Rationale: the source names free translation tools as the translation mechanism.
NFR-4 — No search capability. The site provides no search box and no control implying the corpus is queryable. Provenance: explicit. Rationale: the source states the site is fully automatic with no search box.
NFR-5 — Mandatory provenance. Every published item displays its date and its source URL. Provenance: explicit. Rationale: the source requires each item to state its date and source URL.
NFR-6 — Translation length cap. Where a translation is not full text, the Chinese translation does not exceed 500 characters. Provenance: explicit. Rationale: the source caps non-full translations at 500 characters.
NFR-7 — Minimal white visual constraint. The interface is minimal with a white ground; no tinted section bands, no cards with shadows, no rounded corners. Provenance: explicit. Rationale: the source requires a minimal style with a white ground.
NFR-8 — Daily automation. The collection and translation pipeline runs automatically on a daily schedule driven by the current date, without human action. Provenance: required_inference. Rationale: required to make the accepted daily-sweep behavior executable.
NFR-9 — Readable text and controls stay whole. Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Provenance: explicit (creative direction). Rationale: the direction's readability rule takes precedence over any cropping gesture.
NFR-10 — Reduced-motion usability. Under prefers-reduced-motion, the running source ticker becomes a wrapped static list and every item remains fully readable. Provenance: explicit (creative direction). Rationale: the direction specifies a static arrangement under reduced motion.
Page 15 of 17
10. Tech Stack
- Frontend. React, rendering the two accepted pages (Landing, News Detail) as a public, anonymous, read-only site.
- Backend. Python / FastAPI, serving the published news index and detail data and hosting the scheduled collection-and-translation pipeline.
- Storage. A database for published news items, each carrying its date, source URL, source host, category code, Chinese headline, Chinese body, translation mode, and character count.
- Translation. Free, non-AI translation tooling. No AI service is integrated.
- Containerization. Docker / docker-compose for the application and the scheduled pipeline.
- Kubernetes. Not required by any accepted source constraint; omitted.
Page 16 of 17
11. Assumptions and Constraints
Constraints (source-backed, binding).
- The site is published externally and anyone may access it; no login, account, or registration.
- No AI is connected anywhere in the pipeline; translation uses free translation tools.
- The site is fully automatic and contains no search box.
- Every news item must state its date and its source URL.
- Where a translation is not full text, it must not exceed 500 characters.
- The design is minimal with a white ground.
Assumptions (narrow, labeled).
- [Assumption] The daily collection run is scheduled once per calendar day, driven by the current date, as the accepted behavior requires a date-driven daily sweep.
- [Assumption] Collected items are limited to Hebrew-language Israeli sources covering politics, military affairs, and international affairs, as those are the accepted subject areas.
- [Assumption] An item that cannot be translated is published as a capped excerpt rather than dropped, since the source accepts a 500-character fallback rather than an omission.
- [Assumption] An item missing its date or source URL is withheld from publication, since provenance is a hard constraint on every published item.
- [Assumption] The 500-character limit applies to the translation output of items that cannot be translated in full; it does not limit the corpus, the number of items per day, or the length of fully translated articles.
Defaults (not specified by the user).
- [Default — not specified by user] React for the frontend, Python / FastAPI for the backend, and Docker / docker-compose for packaging.
- [Default — not specified by user] A database is used to store published items and their provenance fields.
Page 17 of 17
12. Glossary
- wise-500 — The project name for this public, fully automated Hebrew-to-Chinese news website.
- 中文读者(公开访客) — The single accepted active human persona: an anonymous Chinese-reading public visitor.
- Landing — The public entry page: masthead, running source ticker, date-grouped news index, and pagination.
- News Detail — The page carrying a single item's Chinese translation, its date, and its source URL.
- Date group — A set of news items sharing one publication date, opened by a sticky date rule and separated from other groups by a hairline.
- Provenance row — The fixed-format grey metadata line under every headline: date · source host · translation honesty marker.
- Translation honesty marker — The marker stating whether an item is a full translation or a capped excerpt (
节译 500字).
- 500-character cap — The limit applied to a Chinese translation when the item cannot be translated in full.
- Code chip — The 8px square chip carrying 政 / 军 / 际, the category code for politics, military, and international affairs.
- Running source ticker — The slow 60-second marquee of today's collected Hebrew source names carried on the masthead rule.
- Pipeline diagram — The one-line monochrome diagram on the detail page footer:
希伯来语源 → 抓取 → 免费翻译 → 500字上限 → 中文.
No comments yet. Be the first!