Files
sechskies/.cursor/rules/user-scope-and-nav.mdc
T

69 lines
5.6 KiB
Plaintext
Raw Normal View History

2026-05-14 11:05:12 +08:00
---
description: 未經使用者明確交代,不得擅自開放導覽、改連結或擴充需求範圍(本 repo 含全站導覽與 totoga2 等)。
alwaysApply: true
---
# 使用者意圖與導覽(sechskies
2026-05-15 02:00:02 +08:00
## 速記(每次動導覽或 `portal-nav.js` 前先對齊)
1. **`extra/site-guide.html`**:站主自用;該頁頂欄 `data-portal-nav-all-open` → **全部連結可點**;主文 `<main class="site-guide-main">` 的 `<a>` **不准**用腳本改成籌備中。
2026-05-15 22:32:35 +08:00
2. **其他每一頁**:未公開=**籌備中**(頂欄+頁內連結皆鎖、須寫出「籌備中」);依 **`COMING_SOON_PAGES` / `INDEX_NAV_OPEN_HASHES`**;不准在其他頁加 `all-open`。
2026-05-15 02:00:02 +08:00
3. **`totoga2.html`**、**`variety.html`**:站主沒說「對外開放」→ **留在 `COMING_SOON_PAGES`**;不得自以為可以幫忙開放。
4. **沒寫在指令裡的開放/連結/從 Set 移除/刪檔或刪導覽列**:**一律先問**,禁止推論;「刪除」未指明範圍(單檔 vs 頂欄整段 vs 資料夾)=必須先問。
5. 技術細節與檢查清單:**`portal-nav-rules.mdc`**(與本檔一起讀)。
2026-05-15 16:01:31 +08:00
6. **頂欄 `portal-nav`header**:文案與巢狀結構對齊 `extra/site-guide.html` **主選單樹**(有連結者);`site-guide-nav-nolink` 與 `COMING_SOON_PAGES` 維持籌備中、**不准擅自開放或改未列開放之頁內容**。勿把此句誤做成 `extra/` 分頁列或全站 `nav` 黑底規則。
2026-05-15 02:00:02 +08:00
---
2026-05-14 11:05:12 +08:00
## 只做被交代的事
- **不得**在未被使用者**明確要求**的情況下:把導覽連結從「籌備中/尚無開放」改成可點、更換 `href` 成真實頁面、從 `COMING_SOON_PAGES` 移除、或把錨點加入 `INDEX_NAV_OPEN_HASHES`。
- **不得**在未被使用者**明確要求**的情況下:從 `buildPortalNavInnerHTML` **刪除**站主**已同意**列入頂欄的項目。
- 使用者**明確要求**移除某列(例如不同意掛頂欄的「六顆水晶」)時,依指示從模板刪除即可。
- **不得**在未被使用者**明確要求**的情況下:在 `buildPortalNavInnerHTML` **新增**任何頂欄導覽項目或子選單連結(即使目標頁面已存在於 repo)。
- **不得**在 **`site-guide.html` 以外**的頁面加上 **`data-portal-nav-all-open`**(該屬性僅用於索引頁頂欄「全連結可點」;其他頁頂欄須套用籌備中規則)。
2026-05-14 11:05:12 +08:00
- **不得**因為「內容已搬到某頁」就自行推論「導覽也應該開放」——導覽是否開放**只聽使用者口述**。
- 若使用者只要求搬內容、刪檔、改站內某段文案,**預設不改** `assets/js/portal-nav.js` 的開放狀態與連結目標。
2026-05-15 02:47:26 +08:00
## 「傳奇的轉折」與 `fallen/totoga2.html`(特別記牢)
2026-05-14 11:05:12 +08:00
2026-05-15 02:47:26 +08:00
- 頂欄模板裡「傳奇的轉折」連到 **`fallen/totoga2.html`**(見 `buildPortalNavInnerHTML`)。
2026-05-15 02:00:02 +08:00
- 使用者**沒有明講對外開放整合頁**時:`totoga2.html` **必須**在 **`COMING_SOON_PAGES`** 裡 → 訪客頂欄該項為籌備中、**不可點進**。
- **禁止**在未獲同意下:從 Set **移除** `totoga2.html`、或改成連到其他頁並當成已開放。
- 首頁錨點另依 **`INDEX_NAV_OPEN_HASHES`**;與「傳奇的轉折/totoga2」分開判斷。
2026-05-14 11:05:12 +08:00
## 實作前自檢
- 若變更會影響 `assets/js/portal-nav.js``buildPortalNavInnerHTML`、`COMING_SOON_PAGES`、`INDEX_NAV_OPEN_HASHES`):**對照使用者原句**,確認每一項連結的開/關都有被明確交代。
## 名詞對齊(避免做錯檔)
- **頂部橫列導覽(常稱 navbar**`assets/js/portal-nav.js` 注入的 `<nav class="portal-nav" data-portal-nav>`。已同意列入者不得擅自刪除;**新增**備份稿/未公開頁至上列須站主明講。**`extra/site-guide.html`** 可加 **`data-portal-nav-all-open`** 略過籌備中(僅該頁)。
2026-05-14 11:05:12 +08:00
- **全站頁面索引**`site-guide.html`(自行開網址),用來列檔案與錨點;**不影響**頂欄是否出現該連結。使用者說「留在全站導覽」常指保留在 **site-guide** 或站內說明,**不等於**要掛進頂欄。
(變更哪些檔、可否動共用 CSS:見 **`ai-change-boundaries.mdc`**。)
全站導覽的**技術細節與檢查清單****`portal-nav-rules.mdc`**(與本檔同目錄)。
2026-05-15 02:00:02 +08:00
---
## 頁面錨點刪除(`某頁.html#某id`)
站主若說「刪 `#stage`」「刪 `variety.html#stage`」等,指的是 **該 HTML 裡 `id="…"` 的那一區塊/`<section>`**,不是刪整份檔、不是刪 `variety/` 資料夾、不是刪頂欄一整段「全員發瘋」、也不是擅自改 `COMING_SOON_PAGES` 開放與否(除非原句一併交代)。
**實作順序(曾做錯順序=站主會火大)**
1. **先**在目標頁面拿掉對應 DOM(含該 `id` 的區塊)。
2. **再**做最小必要連結修正:站內若還有指到已不存在錨點的 `href`,改成仍存在的錨點或去掉 hash;這是避免壞錨點,**不**等於「重構導覽」或「刪頂欄列」。
3. **禁止**只改 `portal-nav.js` / `site-guide.html` 卻不刪頁內區塊;也**禁止**把「刪錨點」擴大成刪站主未點名的頂欄項目。
**和瀏覽器行為對齊(避免說站主幻覺)**
- 錨點從 HTML 拿掉後,書籤或舊連結上的網址列仍可能顯示 `#…`,**不代表**頁面還有該 `id`。
- 頁頂大標(例如 `header` 裡的 `h1`「瘋子與天才」)與下面各區 `id` 區塊是不同層級;不要因為畫面上還看到大標就以為「# 那段還在」。
**仍模糊時**
- 「刪除」沒寫清是單一錨點區、整檔、頂欄某一列還是資料夾:用**一句話**確認再改,不要猜;尤其接近深夜、站主已重複指令時。