Not in the top 1,000 by GitHub stars

antonailog/forge-skills

Forge — 文档驱动的 AI 辅助开发框架 | Document-driven AI development framework with 16 Skills covering brainstorm → PRD → design → engineering → QA → review → ship → retrospective

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/2026-07-04-forge-deliver-retired/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-bugfix/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-design/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-design-lab/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-eng/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-prd/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-review/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-10-feature-doc/forge-ship/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-26-defensive-design/forge-design/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

_archive/snapshots/2026-10-26-defensive-design/forge-prd/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-brainstorm/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-bugfix/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-design/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-design-impl/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-design-lab/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-dev/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-doc-policy/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-doc-release/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-eng/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-feature-doc/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-fupan/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-prd/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-qa/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-review/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-ship/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

skills/forge-status/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 0955ca04f426

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 0955ca04f426153893fe92825d99e02c7dd6bc74

13GitHub stars
0stars in 7 days
27skills in this repository
24commits in 30 days

Heat

1.7
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202613

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

forge

When your agent uses it

Forge 工作流总入口。只读检测项目状态,推荐下一步该用哪个 skill,自己不干活。触发方式:用户说"forge"、"下一步"、"接下来做什么"。

What it loads into context

Frontmatter

55 tokens

Always available to the agent

SKILL.md

2,171 tokens

When the skill is activated

Reference documents

278,885 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 执行流程
  2. Forge 体系完整 Skill 清单
  3. 重要规则

Scripts executed separately

  • _archive/snapshots/2026-09-20-design-lab/workbench-original/tokens_build.py
  • _archive/snapshots/2026-09-20-design-lab/workbench-original/workbench.js
  • evals/forge-design-lab/impl/run_impl_eval.py
  • evals/forge-design-lab/run_trigger_eval.py
  • evals/forge-design-lab/system/run_system_eval.py
  • evals/forge-feature-doc/run_trigger_eval.py
  • evals/forge-feature-doc/score_doc.py
  • examples/pomodoro/shots/codex-delegate/timer-core-head.js
  • install.sh
  • skills/_shared/generate_image2.py
  • tools/fupan-workbench/__init__.py
  • tools/fupan-workbench/frontend/package.json
  • tools/fupan-workbench/frontend/src/main.jsx
  • tools/fupan-workbench/frontend/vite.config.js
  • tools/fupan-workbench/launcher.py
  • tools/fupan-workbench/markdown_reader.py
  • tools/fupan-workbench/review_index.py
  • tools/fupan-workbench/server.py
  • tools/fupan-workbench/static/assets/index-DffckMrb.js
  • tools/fupan-workbench/task_store.py
  • tools/fupan-workbench/tests/test_review_index.py
  • tools/fupan-workbench/tests/test_task_store.py

Files

  • .gitignoreasset112 bytes
  • CHANGELOG.mddoc32,948 bytes
  • LICENSEasset1,068 bytes
  • README.mddoc40,883 bytes
  • SKILL.mdcore7,251 bytes
  • SKILL.mdcore7,251 bytes
  • SKILL.mdcore7,251 bytes
  • SKILL.mdcore7,251 bytes
  • TODO.mddoc10,375 bytes
  • _archive/CHANGELOG.mddoc8,534 bytes
  • _archive/PRD.mddoc10,215 bytes
  • _archive/README-v1.mddoc2,602 bytes
  • _archive/document-driven-dev-guide-original.mddoc15,882 bytes
  • _archive/snapshots/2026-09-20-design-lab/README.mddoc1,385 bytes
  • _archive/snapshots/2026-09-20-design-lab/forge-design-SKILL.mddoc13,320 bytes
  • _archive/snapshots/2026-09-20-design-lab/visual-decision-layer.mddoc7,334 bytes
  • _archive/snapshots/2026-09-20-design-lab/workbench-original/tokens_build.pyruns1,822 bytes
  • _archive/snapshots/2026-09-20-design-lab/workbench-original/workbench.cssasset10,773 bytes
  • _archive/snapshots/2026-09-20-design-lab/workbench-original/workbench.jsruns30,957 bytes
  • _archive/snapshots/2026-10-10-feature-doc/ROOT-SKILL.mddoc6,988 bytes
  • _archive/snapshots/2026-10-10-feature-doc/forge-doc-policy/doc-paths.mddoc6,441 bytes
  • _archive/使用手册.mddoc19,429 bytes
  • _archive/复盘/2026-03-22-文档驱动开发Skill生态构建.mddoc20,004 bytes
  • _archive/多会话并行规范.mddoc10,952 bytes
  • assets/forge-architecture.svgasset5,415 bytes
  • assets/forge-deliver-comparison.svgasset5,456 bytes
  • assets/forge-deliver-v2-flow.svgasset5,168 bytes
  • assets/forge-design-gating.svgasset3,166 bytes
  • assets/forge-eng-internals.svgasset6,681 bytes
  • assets/forge-workflow.svgasset6,552 bytes
  • assets/v1-architecture-whiteboard.pngasset186,521 bytes
  • assets/v1-workflow-whiteboard.pngasset175,430 bytes
  • docs/DESIGN-CHANGELOG.mddoc5,866 bytes
  • docs/DESIGN.mddoc30,769 bytes
  • docs/ENGINEERING-CHANGELOG.mddoc4,916 bytes
  • docs/ENGINEERING.mddoc6,503 bytes
  • docs/PRD-CHANGELOG.mddoc8,386 bytes
  • docs/PRD.mddoc24,554 bytes
  • docs/QA.mddoc8,196 bytes
  • docs/architecture.mddoc11,661 bytes
  • docs/archive/README.mddoc407 bytes
  • docs/archive/design-skill-audit-report.mddoc10,710 bytes
  • docs/archive/external-tools-analysis.mddoc16,055 bytes
  • docs/archive/forge-deliver-analysis.mddoc4,396 bytes
  • docs/archive/forge-qa-v3-research.mddoc23,037 bytes
  • docs/archive/openspec-research.mddoc9,469 bytes
  • docs/archive/raw/claude-md-forge-section-v1-2026-07-04.mddoc8,051 bytes
  • docs/archive/raw/discussions/defensive-design/2026-10-26-症状草稿.mddoc5,933 bytes
  • docs/archive/skill-audit-2026-07.mddoc32,346 bytes
  • docs/archive/skill-review-2026-07-17.mddoc10,522 bytes
  • docs/archive/skill-review-opus-2026-07.mddoc19,955 bytes
  • docs/archive/superpowers-comparison.mddoc4,565 bytes
  • docs/archive/v2026.04.24-fupan-workbench-CONTEXT.mddoc2,557 bytes
  • docs/archive/v2026.04.24-fupan-workbench-RESEARCH.mddoc10,771 bytes
  • docs/assets/fupan-workbench/v2026.04.24.3-detail.pngasset115,727 bytes
  • docs/assets/fupan-workbench/v2026.04.24.3-home.pngasset146,210 bytes
  • docs/brainstorm-人工反馈收集-2026-04-19.mddoc15,096 bytes
  • docs/d3-acceptance-2026-07.mddoc4,615 bytes
  • docs/design-skill-fusion-methodology.mddoc11,999 bytes
  • docs/diagrams/forge-architecture.jpgasset270,433 bytes
  • docs/diagrams/forge-brainstorm.jpgasset246,865 bytes
  • docs/diagrams/forge-bugfix.jpgasset202,494 bytes
  • docs/diagrams/forge-design-impl.jpgasset225,501 bytes
  • docs/diagrams/forge-design-lab.jpgasset203,064 bytes
  • docs/diagrams/forge-design.jpgasset258,133 bytes
  • docs/diagrams/forge-dev.jpgasset275,738 bytes
  • docs/diagrams/forge-doc-policy.jpgasset217,950 bytes
  • docs/diagrams/forge-doc-release.jpgasset252,617 bytes
  • docs/diagrams/forge-eng.jpgasset286,938 bytes
  • docs/diagrams/forge-feature-doc.jpgasset261,442 bytes
  • docs/diagrams/forge-fupan.jpgasset255,897 bytes
  • docs/diagrams/forge-prd.jpgasset252,837 bytes
  • docs/diagrams/forge-qa.jpgasset244,217 bytes
  • docs/diagrams/forge-review.jpgasset228,875 bytes
  • docs/diagrams/forge-ring.jpgasset90,573 bytes
  • docs/diagrams/forge-ship.jpgasset239,658 bytes
  • docs/diagrams/forge-status.jpgasset221,076 bytes
  • docs/forge-bugfix-changelog.mddoc17,959 bytes
  • docs/forge-design-lab-设计文档.mddoc22,567 bytes
  • docs/forge-design-lab-评测报告.mddoc9,286 bytes
  • docs/forge-feature-doc-设计文档.mddoc13,589 bytes
  • docs/forge-feature-doc-评测报告.mddoc16,163 bytes
  • docs/forge-user-guide.mddoc24,265 bytes
  • docs/glossary.mddoc3,545 bytes
  • docs/iterations/2026-04-19-双层验收清单.mddoc6,958 bytes
  • docs/iterations/2026-04-19-多会话并行协调.mddoc11,647 bytes
  • docs/iterations/2026-04-25-Bug修复验收报告与QA自动闭环.mddoc7,736 bytes
  • docs/optimization-plan-2026-07.mddoc8,802 bytes
  • docs/releases/v2026.04.24.3.mddoc1,590 bytes
  • docs/releases/v2026.04.25.mddoc5,664 bytes
  • docs/releases/v2026.04.27.mddoc4,794 bytes
  • docs/releases/v2026.07.17.mddoc3,242 bytes
  • docs/skills-reference.mddoc18,005 bytes
  • docs/workflow-guide.mddoc6,102 bytes
  • evals/forge-design-lab/impl/run_impl_eval.pyruns4,926 bytes
  • evals/forge-design-lab/results-2026-09-20-extra.jsonasset3,279 bytes
  • evals/forge-design-lab/results-2026-09-20.jsonasset15,491 bytes
  • evals/forge-design-lab/results-2026-10-10.jsonasset23,801 bytes
  • evals/forge-design-lab/rubric.mddoc3,255 bytes
  • evals/forge-design-lab/run_trigger_eval.pyruns5,016 bytes
  • evals/forge-design-lab/system/run_system_eval.pyruns25,404 bytes
  • evals/forge-design-lab/trigger-eval.jsonasset8,291 bytes
  • evals/forge-feature-doc/results-2026-10-10-v2.jsonasset11,974 bytes
  • evals/forge-feature-doc/results-2026-10-10.jsonasset11,815 bytes
  • evals/forge-feature-doc/rubric.mddoc2,394 bytes
  • evals/forge-feature-doc/run-2026-10-10-v2.logasset4,141 bytes
  • evals/forge-feature-doc/run-2026-10-10.logasset4,040 bytes
  • evals/forge-feature-doc/run_trigger_eval.pyruns5,353 bytes
  • evals/forge-feature-doc/score-2026-10-10.jsonasset3,521 bytes
  • evals/forge-feature-doc/score_doc.pyruns4,725 bytes
  • evals/forge-feature-doc/trigger-eval.jsonasset3,549 bytes
  • evals/trigger-cases.mddoc4,361 bytes
  • examples/pomodoro/README.mddoc3,571 bytes
  • examples/pomodoro/codex-delegate.mddoc7,201 bytes
  • examples/pomodoro/forge-brainstorm.mddoc5,608 bytes
  • examples/pomodoro/forge-bugfix.mddoc18,349 bytes
  • examples/pomodoro/forge-design-impl.mddoc10,165 bytes
  • examples/pomodoro/forge-design-lab.mddoc8,771 bytes
  • examples/pomodoro/forge-design.mddoc7,489 bytes
  • examples/pomodoro/forge-dev.mddoc10,933 bytes
  • examples/pomodoro/forge-doc-policy.mddoc2,866 bytes
  • examples/pomodoro/forge-doc-release.mddoc9,416 bytes
  • examples/pomodoro/forge-eng.mddoc14,264 bytes
  • examples/pomodoro/forge-feature-doc.mddoc5,737 bytes
  • examples/pomodoro/forge-fupan.mddoc11,121 bytes
  • examples/pomodoro/forge-prd.mddoc6,345 bytes
  • examples/pomodoro/forge-qa.mddoc14,801 bytes
  • examples/pomodoro/forge-review.mddoc8,571 bytes
  • examples/pomodoro/forge-ship.mddoc8,079 bytes
  • examples/pomodoro/forge-status.mddoc7,285 bytes
  • examples/pomodoro/forge.mddoc3,269 bytes
  • examples/pomodoro/fupan/learnings.jsonlasset1,732 bytes
  • examples/pomodoro/fupan/workbench-task.jsonasset10,743 bytes
  • examples/pomodoro/shots/codex-delegate/T01.prompt.mddoc9,909 bytes
  • examples/pomodoro/shots/codex-delegate/card.jpgasset176,235 bytes
  • examples/pomodoro/shots/codex-delegate/input.pngasset296,691 bytes
  • examples/pomodoro/shots/codex-delegate/output.pngasset116,222 bytes
  • examples/pomodoro/shots/codex-delegate/timer-core-head.jsruns1,082 bytes
  • examples/pomodoro/shots/forge-brainstorm/card.jpgasset240,601 bytes
  • examples/pomodoro/shots/forge-brainstorm/output.pngasset277,766 bytes
  • examples/pomodoro/shots/forge-bugfix/card.jpgasset117,057 bytes
  • examples/pomodoro/shots/forge-bugfix/output.pngasset38,812 bytes
  • examples/pomodoro/shots/forge-bugfix/修前修后对照.pngasset35,517 bytes
  • examples/pomodoro/shots/forge-design-impl/card.jpgasset84,056 bytes
  • examples/pomodoro/shots/forge-design-impl/input.pngasset22,643 bytes
  • examples/pomodoro/shots/forge-design-impl/output.pngasset22,643 bytes
  • examples/pomodoro/shots/forge-design-lab/card.jpgasset129,268 bytes
  • examples/pomodoro/shots/forge-design-lab/input.pngasset1,021,114 bytes
  • examples/pomodoro/shots/forge-design-lab/output.pngasset359,842 bytes
  • examples/pomodoro/shots/forge-design/card.jpgasset119,664 bytes
  • examples/pomodoro/shots/forge-design/input.pngasset121,949 bytes
  • examples/pomodoro/shots/forge-design/output.pngasset1,021,114 bytes
  • examples/pomodoro/shots/forge-dev/card.jpgasset146,249 bytes
  • examples/pomodoro/shots/forge-dev/output.pngasset110,827 bytes
  • examples/pomodoro/shots/forge-dev/status.mddoc4,956 bytes
  • examples/pomodoro/shots/forge-dev/流水线.mddoc554 bytes
  • examples/pomodoro/shots/forge-doc-policy/card.jpgasset107,018 bytes
  • examples/pomodoro/shots/forge-doc-policy/output.pngasset49,964 bytes
  • examples/pomodoro/shots/forge-doc-release/card.jpgasset150,515 bytes
  • examples/pomodoro/shots/forge-doc-release/input.pngasset106,682 bytes
  • examples/pomodoro/shots/forge-doc-release/output.pngasset193,230 bytes
  • examples/pomodoro/shots/forge-doc-release/发布前README.mddoc546 bytes
  • examples/pomodoro/shots/forge-eng/card.jpgasset105,541 bytes
  • examples/pomodoro/shots/forge-eng/input.pngasset202,795 bytes
  • examples/pomodoro/shots/forge-eng/output.pngasset46,593 bytes
  • examples/pomodoro/shots/forge-feature-doc/card.jpgasset172,186 bytes
  • examples/pomodoro/shots/forge-feature-doc/input.pngasset170,706 bytes
  • examples/pomodoro/shots/forge-feature-doc/output.pngasset186,487 bytes
  • examples/pomodoro/shots/forge-feature-doc/六种状态-示意图.pngasset179,870 bytes
  • examples/pomodoro/shots/forge-fupan/01-session-pending.pngasset1,493,544 bytes
  • examples/pomodoro/shots/forge-fupan/02-session-filled.pngasset1,509,000 bytes
  • examples/pomodoro/shots/forge-fupan/02b-topic-form.pngasset657,893 bytes
  • examples/pomodoro/shots/forge-fupan/03-session-submitted.pngasset940,302 bytes
  • examples/pomodoro/shots/forge-fupan/04-home.pngasset120,000 bytes
  • examples/pomodoro/shots/forge-fupan/05-session-done.pngasset922,939 bytes
  • examples/pomodoro/shots/forge-fupan/06-review-page.pngasset555,000 bytes
  • examples/pomodoro/shots/forge-fupan/07-ledger.pngasset231,153 bytes
  • examples/pomodoro/shots/forge-fupan/card.jpgasset184,746 bytes
  • examples/pomodoro/shots/forge-fupan/output.pngasset1,271,123 bytes
  • examples/pomodoro/shots/forge-prd/card.jpgasset206,402 bytes
  • examples/pomodoro/shots/forge-prd/input.pngasset207,128 bytes
  • examples/pomodoro/shots/forge-prd/output.pngasset200,006 bytes
  • examples/pomodoro/shots/forge-qa/QA.mddoc25,937 bytes
  • examples/pomodoro/shots/forge-qa/_desktop-focus-running.pngasset48,037 bytes
  • examples/pomodoro/shots/forge-qa/_impl-compare-page.pngasset23,002 bytes
  • examples/pomodoro/shots/forge-qa/_impl-compare-skeleton.pngasset23,002 bytes
  • examples/pomodoro/shots/forge-qa/_overview.pngasset161,738 bytes
  • examples/pomodoro/shots/forge-qa/_phone-focus-running.pngasset29,448 bytes
  • examples/pomodoro/shots/forge-qa/card.jpgasset196,522 bytes
  • examples/pomodoro/shots/forge-qa/input.pngasset46,593 bytes
  • examples/pomodoro/shots/forge-qa/output.pngasset256,534 bytes
  • examples/pomodoro/shots/forge-review/card.jpgasset180,634 bytes
  • examples/pomodoro/shots/forge-review/output.pngasset229,951 bytes
  • examples/pomodoro/shots/forge-ship/card.jpgasset189,167 bytes
  • examples/pomodoro/shots/forge-ship/output.pngasset482,760 bytes
  • examples/pomodoro/shots/forge-status/card.jpgasset147,193 bytes
  • examples/pomodoro/shots/forge-status/input.pngasset37,201 bytes
  • examples/pomodoro/shots/forge-status/output.pngasset165,144 bytes
  • examples/pomodoro/shots/forge-status/worktree-list.txtdoc153 bytes
  • examples/pomodoro/shots/forge-status/终端输出.txtdoc792 bytes
  • examples/pomodoro/shots/forge-status/输入.txtdoc148 bytes
  • examples/pomodoro/shots/forge-suite/card.jpgasset100,066 bytes
  • examples/pomodoro/shots/forge-suite/output.pngasset38,663 bytes
  • examples/pomodoro/shots/forge/card.jpgasset152,304 bytes
  • examples/pomodoro/shots/forge/input.pngasset93,535 bytes
  • examples/pomodoro/shots/forge/output.pngasset142,334 bytes
  • examples/pomodoro/shots/forge/终端输出.txtdoc542 bytes
  • install.shruns6,636 bytes
  • skills/_shared/current-doc-loading.mddoc1,127 bytes
  • skills/_shared/feature-status-protocol.mddoc1,454 bytes
  • skills/_shared/generate_image2.pyruns6,066 bytes
  • skills/_shared/interaction-protocol.mddoc4,602 bytes
  • skills/_shared/visual-decision-layer.mddoc8,177 bytes
  • tools/fupan-workbench/README.mddoc1,649 bytes
  • tools/fupan-workbench/__init__.pyruns71 bytes
  • tools/fupan-workbench/frontend/index.htmlasset305 bytes
  • tools/fupan-workbench/frontend/package-lock.jsonasset51,897 bytes
  • tools/fupan-workbench/frontend/package.jsonruns409 bytes
  • tools/fupan-workbench/frontend/src/main.jsxruns29,655 bytes
  • tools/fupan-workbench/frontend/src/styles.cssasset20,089 bytes
  • tools/fupan-workbench/frontend/vite.config.jsruns200 bytes
  • tools/fupan-workbench/launcher.pyruns8,814 bytes
  • tools/fupan-workbench/markdown_reader.pyruns1,299 bytes
  • tools/fupan-workbench/requirements.txtdoc91 bytes
  • tools/fupan-workbench/review_index.pyruns7,833 bytes
  • tools/fupan-workbench/server.pyruns8,293 bytes
  • tools/fupan-workbench/static/assets/index-DffckMrb.jsruns198,794 bytes
  • tools/fupan-workbench/static/assets/index-DvMidqQ_.cssasset16,429 bytes
  • tools/fupan-workbench/static/index.htmlasset403 bytes
  • tools/fupan-workbench/task_store.pyruns7,569 bytes
  • tools/fupan-workbench/tests/test_review_index.pyruns3,517 bytes
  • tools/fupan-workbench/tests/test_task_store.pyruns4,824 bytes
  • updatemd/README.mddoc841 bytes
  • updatemd/claude-md/2026-04-18-R8-R9-R10-新增规则.mddoc1,201 bytes
  • updatemd/claude-md/2026-04-19-R11-双层验收清单.mddoc3,511 bytes
  • updatemd/forge-bugfix/2026-04-18-v3.0-跨会话知识+需求分流+经验沉淀+方案确认.mddoc6,467 bytes
  • updatemd/forge-bugfix/2026-04-18-v3.1-多Bug分诊+标签化日志+5Whys链+Bug分类+防护措施.mddoc7,972 bytes
  • updatemd/forge-bugfix/2026-04-19-双层验收清单改造.mddoc4,430 bytes
  • updatemd/forge-design/2026-04-18-组件复用审查.mddoc671 bytes
  • updatemd/forge-eng/2026-04-18-影响面扫描+环境验证.mddoc1,745 bytes
  • updatemd/forge-prd/2026-04-18-异常态强制项.mddoc1,167 bytes
  • updatemd/forge-qa/2026-04-18-探索性测试前置.mddoc1,114 bytes
  • updatemd/forge-qa/2026-04-19-Mode-B单bug验收.mddoc3,602 bytes
  • updatemd/forge-review/2026-04-18-重复代码检测.mddoc651 bytes
Read SKILL.md

# /forge:工作流总入口

不知道下一步该干什么?打 `/forge`。

全程中文。

---

## 执行流程

### 第1步:检测项目状态

```bash
_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
View the complete source on GitHub

Skills included

  • forge
  • forge-deliver
  • forge-bugfix
  • forge-design
  • forge-design-lab
  • forge-eng
  • forge-prd
  • forge-review
  • forge-ship
  • forge-design
  • forge-prd
  • forge-brainstorm
  • forge-bugfix
  • forge-design
  • forge-design-impl
  • forge-design-lab
  • forge-dev
  • forge-doc-policy
  • forge-doc-release
  • forge-eng
  • forge-feature-doc
  • forge-fupan
  • forge-prd
  • forge-qa
  • forge-review
  • forge-ship
  • forge-status

Repository facts

License
MIT
Created
Mar 29, 2026
Last pushed
Oct 26, 2026
Forks
2
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 258 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • assets/forge-architecture.svg:1 Analysis incomplete: physical or joined line exceeds character limit
  • assets/forge-deliver-comparison.svg:1 Analysis incomplete: physical or joined line exceeds character limit
  • assets/forge-deliver-v2-flow.svg:1 Analysis incomplete: physical or joined line exceeds character limit
  • assets/forge-eng-internals.svg:1 Analysis incomplete: physical or joined line exceeds character limit
  • assets/forge-workflow.svg:1 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:9 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:7 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:8 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:33 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:31 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:32 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:37 [Credential-related source omitted]
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:35 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:34 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:38 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:36 Analysis incomplete: physical or joined line exceeds character limit
  • tools/fupan-workbench/static/assets/index-DffckMrb.js:40 Analysis incomplete: physical or joined line exceeds character limit
Show all 890 signals by file

CHANGELOG.md

  • Network accessline 3
    本文档记录 forge-cookbook 的重要变更。遵循 [Keep a Changelog](https://keepachangelog.com/) 风格。
  • Access to secretsline 176
    [Credential-related source omitted]

README.md

  • Network accessline 10
    [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
  • Network accessline 11
    [![Claude Code](https://img.shields.io/badge/Claude%20Code-Skill-blueviolet)](https://claude.ai/code)
  • Network accessline 12
    [![Skills](https://img.shields.io/badge/Skills-16%2B1-blue)]()
  • Network accessline 13
    [![Release](https://img.shields.io/github/v/release/antonailog/forge-skills?label=Release&color=green)](https://github.com/antonailog/forge-skills/releases)
  • Network accessline 131
    从一句想法「我想做一个番茄钟网页,专心工作 25 分钟、休息 5 分钟,能看到今天完成了几个」开始,按 Forge 的流程一步步做到合并上线,中间还修了一个真实的 bug。代码、需求、设计、验收报告都在示范仓库 [forge-demo-pomodoro](https://github.com/antonailog/forge-demo-pomodoro),每个 Skill 在这次示范里拿到了什么、做了什么、交出了什么,记在 [examples/pomodoro/](examp
  • Network accessline 133
    需要用户拍板的地方由 AI 按事先写好的需求设定代为确认,记录里每一处都有标注;写代码那几步由 [codex-delegate](https://github.com/antonailog/skills/tree/main/skills/codex-delegate) 派给本机 Codex 写、Claude 验收。
  • Network accessline 309
    # 克隆到本地 git clone https://github.com/antonailog/forge-skills.git
  • Network accessline 310
    git clone https://github.com/antonailog/forge-skills.git
  • Network accessline 331
    **forge-design-lab 另需 [design-studio](https://github.com/antonailog/design-studio)**(工作台服务和 token 工具在那里):`git clone https://github.com/antonailog/design-studio.git ~/.design-studio`,`install.sh` 会检测并提示。它是独立仓库,要单独 `git pull` 更新。skill 清单自动发现(
  • Network accessline 436
    MIT License © [antonailog](https://github.com/antonailog)

_archive/2026-07-04-forge-deliver-retired/SKILL.md

_archive/document-driven-dev-guide-original.md

  • Network accessline 343
    上下文工程和 Wave 并行执行机制参考了 [GSD (Get Shit Done)](https://github.com/gsd-build/get-shit-done) 框架。

_archive/snapshots/2026-09-20-design-lab/visual-decision-layer.md

  • Access to secretsline 76
    [Credential-related source omitted]

_archive/snapshots/2026-09-20-design-lab/workbench-original/tokens_build.py

  • Executable scriptline 1
    #!/opt/homebrew/bin/python3

_archive/snapshots/2026-09-20-design-lab/workbench-original/workbench.js

  • Executable scriptline 1
    Executable file

_archive/snapshots/2026-10-10-feature-doc/forge-bugfix/SKILL.md

_archive/snapshots/2026-10-10-feature-doc/forge-design-lab/SKILL.md

  • Network accessline 58
    **先起服务,再打开页面**。`serve.py` 把仓库根当静态根,页面 URL 形如 `http://127.0.0.1:4577/docs/assets/visuals/<page>/<file>.html`,页面里那些跨目录相对路径原样可用。
  • Network accessline 59
    `http://127.0.0.1:4577/docs/assets/visuals/<page>/<file>.html`,页面里那些跨目录相对路径原样可用。

_archive/snapshots/2026-10-10-feature-doc/forge-review/SKILL.md

_archive/snapshots/2026-10-10-feature-doc/forge-ship/SKILL.md

_archive/snapshots/2026-10-26-defensive-design/forge-design/data/products.csv

  • Access to secretsline 112
    [Credential-related source omitted]

_archive/snapshots/2026-10-26-defensive-design/forge-design/data/typography.csv

  • Network accessline 1
    No,Font Pairing Name,Category,Heading Font,Body Font,Mood/Style Keywords,Best For,Google Fonts URL,CSS Import,Tailwind Config,Notes 1,Classic Elegant,"Serif + Sans",Playfair Display,Inter,"elegant, luxury, sophisticated, timeless, premium, 
  • Network accessline 2
    1,Classic Elegant,"Serif + Sans",Playfair Display,Inter,"elegant, luxury, sophisticated, timeless, premium, editorial","Luxury brands, fashion, spa, beauty, editorial, magazines, high-end e-commerce","https://fonts.google.com/share?selectio
  • Network accessline 3
    2,Modern Professional,"Sans + Sans",Poppins,Open Sans,"modern, professional, clean, corporate, friendly, approachable","SaaS, corporate sites, business apps, startups, professional services","https://fonts.google.com/share?selection.family=
  • Network accessline 4
    3,Tech Startup,"Sans + Sans",Space Grotesk,DM Sans,"tech, startup, modern, innovative, bold, futuristic","Tech companies, startups, SaaS, developer tools, AI products","https://fonts.google.com/share?selection.family=DM+Sans:wght@400;500;70
  • Network accessline 5
    4,Editorial Classic,"Serif + Serif",Cormorant Garamond,Libre Baskerville,"editorial, classic, literary, traditional, refined, bookish","Publishing, blogs, news sites, literary magazines, book covers","https://fonts.google.com/share?selectio
  • Network accessline 6
    5,Minimal Swiss,"Sans + Sans",Inter,Inter,"minimal, clean, swiss, functional, neutral, professional","Dashboards, admin panels, documentation, enterprise apps, design systems","https://fonts.google.com/share?selection.family=Inter:wght@300;
  • Network accessline 7
    6,Playful Creative,"Display + Sans",Fredoka,Nunito,"playful, friendly, fun, creative, warm, approachable","Children's apps, educational, gaming, creative tools, entertainment","https://fonts.google.com/share?selection.family=Fredoka:wght@40
  • Network accessline 8
    7,Bold Statement,"Display + Sans",Bebas Neue,Source Sans 3,"bold, impactful, strong, dramatic, modern, headlines","Marketing sites, portfolios, agencies, event pages, sports","https://fonts.google.com/share?selection.family=Bebas+Neue|Sourc
  • Network accessline 9
    8,Wellness Calm,"Serif + Sans",Lora,Raleway,"calm, wellness, health, relaxing, natural, organic","Health apps, wellness, spa, meditation, yoga, organic brands","https://fonts.google.com/share?selection.family=Lora:wght@400;500;600;700|Ralew
  • Network accessline 10
    9,Developer Mono,"Mono + Sans",JetBrains Mono,IBM Plex Sans,"code, developer, technical, precise, functional, hacker","Developer tools, documentation, code editors, tech blogs, CLI apps","https://fonts.google.com/share?selection.family=IBM+
  • Network accessline 11
    10,Retro Vintage,"Display + Serif",Abril Fatface,Merriweather,"retro, vintage, nostalgic, dramatic, decorative, bold","Vintage brands, breweries, restaurants, creative portfolios, posters","https://fonts.google.com/share?selection.family=Ab
  • Network accessline 12
    11,Geometric Modern,"Sans + Sans",Outfit,Work Sans,"geometric, modern, clean, balanced, contemporary, versatile","General purpose, portfolios, agencies, modern brands, landing pages","https://fonts.google.com/share?selection.family=Outfit:w
  • Network accessline 13
    12,Luxury Serif,"Serif + Sans",Cormorant,Montserrat,"luxury, high-end, fashion, elegant, refined, premium","Fashion brands, luxury e-commerce, jewelry, high-end services","https://fonts.google.com/share?selection.family=Cormorant:wght@400;5
  • Network accessline 14
    13,Friendly SaaS,"Sans + Sans",Plus Jakarta Sans,Plus Jakarta Sans,"friendly, modern, saas, clean, approachable, professional","SaaS products, web apps, dashboards, B2B, productivity tools","https://fonts.google.com/share?selection.family=P
  • Network accessline 15
    14,News Editorial,"Serif + Sans",Newsreader,Roboto,"news, editorial, journalism, trustworthy, readable, informative","News sites, blogs, magazines, journalism, content-heavy sites","https://fonts.google.com/share?selection.family=Newsreader
  • Network accessline 16
    15,Handwritten Charm,"Script + Sans",Caveat,Quicksand,"handwritten, personal, friendly, casual, warm, charming","Personal blogs, invitations, creative portfolios, lifestyle brands","https://fonts.google.com/share?selection.family=Caveat:wgh
  • Network accessline 17
    16,Corporate Trust,"Sans + Sans",Lexend,Source Sans 3,"corporate, trustworthy, accessible, readable, professional, clean","Enterprise, government, healthcare, finance, accessibility-focused","https://fonts.google.com/share?selection.family=
  • Network accessline 18
    17,Brutalist Raw,"Mono + Mono",Space Mono,Space Mono,"brutalist, raw, technical, monospace, minimal, stark","Brutalist designs, developer portfolios, experimental, tech art","https://fonts.google.com/share?selection.family=Space+Mono:wght@4
  • Network accessline 19
    18,Fashion Forward,"Sans + Sans",Syne,Manrope,"fashion, avant-garde, creative, bold, artistic, edgy","Fashion brands, creative agencies, art galleries, design studios","https://fonts.google.com/share?selection.family=Manrope:wght@300;400;50
  • Network accessline 20
    19,Soft Rounded,"Sans + Sans",Varela Round,Nunito Sans,"soft, rounded, friendly, approachable, warm, gentle","Children's products, pet apps, friendly brands, wellness, soft UI","https://fonts.google.com/share?selection.family=Nunito+Sans:wg
  • Network accessline 21
    20,Premium Sans,"Sans + Sans",Satoshi,General Sans,"premium, modern, clean, sophisticated, versatile, balanced","Premium brands, modern agencies, SaaS, portfolios, startups","https://fonts.google.com/share?selection.family=DM+Sans:wght@400;
  • Network accessline 22
    21,Vietnamese Friendly,"Sans + Sans",Be Vietnam Pro,Noto Sans,"vietnamese, international, readable, clean, multilingual, accessible","Vietnamese sites, multilingual apps, international products","https://fonts.google.com/share?selection.fam
  • Network accessline 23
    22,Japanese Elegant,"Serif + Sans",Noto Serif JP,Noto Sans JP,"japanese, elegant, traditional, modern, multilingual, readable","Japanese sites, Japanese restaurants, cultural sites, anime/manga","https://fonts.google.com/share?selection.fam
  • Network accessline 24
    23,Korean Modern,"Sans + Sans",Noto Sans KR,Noto Sans KR,"korean, modern, clean, professional, multilingual, readable","Korean sites, K-beauty, K-pop, Korean businesses, multilingual","https://fonts.google.com/share?selection.family=Noto+Sa
  • Network accessline 25
    24,Chinese Traditional,"Serif + Sans",Noto Serif TC,Noto Sans TC,"chinese, traditional, elegant, cultural, multilingual, readable","Traditional Chinese sites, cultural content, Taiwan/Hong Kong markets","https://fonts.google.com/share?selec
  • Network accessline 26
    25,Chinese Simplified,"Sans + Sans",Noto Sans SC,Noto Sans SC,"chinese, simplified, modern, professional, multilingual, readable","Simplified Chinese sites, mainland China market, business apps","https://fonts.google.com/share?selection.fam
  • Network accessline 27
    26,Arabic Elegant,"Serif + Sans",Noto Naskh Arabic,Noto Sans Arabic,"arabic, elegant, traditional, cultural, RTL, readable","Arabic sites, Middle East market, Islamic content, bilingual sites","https://fonts.google.com/share?selection.famil
  • Network accessline 28
    27,Thai Modern,"Sans + Sans",Noto Sans Thai,Noto Sans Thai,"thai, modern, readable, clean, multilingual, accessible","Thai sites, Southeast Asia, tourism, Thai restaurants","https://fonts.google.com/share?selection.family=Noto+Sans+Thai:wgh
  • Network accessline 29
    28,Hebrew Modern,"Sans + Sans",Noto Sans Hebrew,Noto Sans Hebrew,"hebrew, modern, RTL, clean, professional, readable","Hebrew sites, Israeli market, Jewish content, bilingual sites","https://fonts.google.com/share?selection.family=Noto+Sans
  • Network accessline 30
    29,Legal Professional,"Serif + Sans",EB Garamond,Lato,"legal, professional, traditional, trustworthy, formal, authoritative","Law firms, legal services, contracts, formal documents, government","https://fonts.google.com/share?selection.fami
  • Network accessline 31
    30,Medical Clean,"Sans + Sans",Figtree,Noto Sans,"medical, clean, accessible, professional, healthcare, trustworthy","Healthcare, medical clinics, pharma, health apps, accessibility","https://fonts.google.com/share?selection.family=Figtree:
  • Network accessline 32
    31,Financial Trust,"Sans + Sans",IBM Plex Sans,IBM Plex Sans,"financial, trustworthy, professional, corporate, banking, serious","Banks, finance, insurance, investment, fintech, enterprise","https://fonts.google.com/share?selection.family=I
  • Network accessline 33
    32,Real Estate Luxury,"Serif + Sans",Cinzel,Josefin Sans,"real estate, luxury, elegant, sophisticated, property, premium","Real estate, luxury properties, architecture, interior design","https://fonts.google.com/share?selection.family=Cinze
  • Network accessline 34
    33,Restaurant Menu,"Serif + Sans",Playfair Display SC,Karla,"restaurant, menu, culinary, elegant, foodie, hospitality","Restaurants, cafes, food blogs, culinary, hospitality","https://fonts.google.com/share?selection.family=Karla:wght@300;4
  • Network accessline 35
    34,Art Deco,"Display + Sans",Poiret One,Didact Gothic,"art deco, vintage, 1920s, elegant, decorative, gatsby","Vintage events, art deco themes, luxury hotels, classic cocktails","https://fonts.google.com/share?selection.family=Didact+Gothic
  • Network accessline 36
    35,Magazine Style,"Serif + Sans",Libre Bodoni,Public Sans,"magazine, editorial, publishing, refined, journalism, print","Magazines, online publications, editorial content, journalism","https://fonts.google.com/share?selection.family=Libre+B
  • Network accessline 37
    36,Crypto/Web3,"Sans + Sans",Orbitron,Exo 2,"crypto, web3, futuristic, tech, blockchain, digital","Crypto platforms, NFT, blockchain, web3, futuristic tech","https://fonts.google.com/share?selection.family=Exo+2:wght@300;400;500;600;700|Orb
  • Network accessline 38
    37,Gaming Bold,"Display + Sans",Russo One,Chakra Petch,"gaming, bold, action, esports, competitive, energetic","Gaming, esports, action games, competitive sports, entertainment","https://fonts.google.com/share?selection.family=Chakra+Petch:
  • Network accessline 39
    38,Indie/Craft,"Display + Sans",Amatic SC,Cabin,"indie, craft, handmade, artisan, organic, creative","Craft brands, indie products, artisan, handmade, organic products","https://fonts.google.com/share?selection.family=Amatic+SC:wght@400;700
  • Network accessline 40
    39,Startup Bold,"Sans + Sans",Clash Display,Satoshi,"startup, bold, modern, innovative, confident, dynamic","Startups, pitch decks, product launches, bold brands","https://fonts.google.com/share?selection.family=Outfit:wght@400;500;600;700|
  • Network accessline 41
    40,E-commerce Clean,"Sans + Sans",Rubik,Nunito Sans,"ecommerce, clean, shopping, product, retail, conversion","E-commerce, online stores, product pages, retail, shopping","https://fonts.google.com/share?selection.family=Nunito+Sans:wght@300
  • Network accessline 42
    41,Academic/Research,"Serif + Sans",Crimson Pro,Atkinson Hyperlegible,"academic, research, scholarly, accessible, readable, educational","Universities, research papers, academic journals, educational","https://fonts.google.com/share?selecti
  • Network accessline 43
    42,Dashboard Data,"Mono + Sans",Fira Code,Fira Sans,"dashboard, data, analytics, code, technical, precise","Dashboards, analytics, data visualization, admin panels","https://fonts.google.com/share?selection.family=Fira+Code:wght@400;500;600
  • Network accessline 44
    43,Music/Entertainment,"Display + Sans",Righteous,Poppins,"music, entertainment, fun, energetic, bold, performance","Music platforms, entertainment, events, festivals, performers","https://fonts.google.com/share?selection.family=Poppins:wgh
  • Network accessline 45
    44,Minimalist Portfolio,"Sans + Sans",Archivo,Space Grotesk,"minimal, portfolio, designer, creative, clean, artistic","Design portfolios, creative professionals, minimalist brands","https://fonts.google.com/share?selection.family=Archivo:wg
  • Network accessline 46
    45,Kids/Education,"Display + Sans",Baloo 2,Comic Neue,"kids, education, playful, friendly, colorful, learning","Children's apps, educational games, kid-friendly content","https://fonts.google.com/share?selection.family=Baloo+2:wght@400;500;
  • Network accessline 47
    46,Wedding/Romance,"Script + Serif",Great Vibes,Cormorant Infant,"wedding, romance, elegant, script, invitation, feminine","Wedding sites, invitations, romantic brands, bridal","https://fonts.google.com/share?selection.family=Cormorant+Infa
  • Network accessline 48
    47,Science/Tech,"Sans + Sans",Exo,Roboto Mono,"science, technology, research, data, futuristic, precise","Science, research, tech documentation, data-heavy sites","https://fonts.google.com/share?selection.family=Exo:wght@300;400;500;600;700
  • Network accessline 49
    48,Accessibility First,"Sans + Sans",Atkinson Hyperlegible,Atkinson Hyperlegible,"accessible, readable, inclusive, WCAG, dyslexia-friendly, clear","Accessibility-critical sites, government, healthcare, inclusive design","https://fonts.googl
  • Network accessline 50
    49,Sports/Fitness,"Sans + Sans",Barlow Condensed,Barlow,"sports, fitness, athletic, energetic, condensed, action","Sports, fitness, gyms, athletic brands, competition","https://fonts.google.com/share?selection.family=Barlow+Condensed:wght@4
  • Network accessline 51
    50,Luxury Minimalist,"Serif + Sans",Bodoni Moda,Jost,"luxury, minimalist, high-end, sophisticated, refined, premium","Luxury minimalist brands, high-end fashion, premium products","https://fonts.google.com/share?selection.family=Bodoni+Moda
  • Network accessline 52
    51,Tech/HUD Mono,"Mono + Mono",Share Tech Mono,Fira Code,"tech, futuristic, hud, sci-fi, data, monospaced, precise","Sci-fi interfaces, developer tools, cybersecurity, dashboards","https://fonts.google.com/share?selection.family=Fira+Code:w
  • Network accessline 53
    52,Pixel Retro,"Display + Sans",Press Start 2P,VT323,"pixel, retro, gaming, 8-bit, nostalgic, arcade","Pixel art games, retro websites, creative portfolios","https://fonts.google.com/share?selection.family=Press+Start+2P|VT323","@import url
  • Network accessline 54
    53,Neubrutalist Bold,"Display + Sans",Lexend Mega,Public Sans,"bold, neubrutalist, loud, strong, geometric, quirky","Neubrutalist designs, Gen Z brands, bold marketing","https://fonts.google.com/share?selection.family=Lexend+Mega:wght@100..
  • Network accessline 55
    54,Academic/Archival,"Serif + Serif",EB Garamond,Crimson Text,"academic, old-school, university, research, serious, traditional","University sites, archives, research papers, history","https://fonts.google.com/share?selection.family=Crimson
  • Network accessline 56
    55,Spatial Clear,"Sans + Sans",Inter,Inter,"spatial, legible, glass, system, clean, neutral","Spatial computing, AR/VR, glassmorphism interfaces","https://fonts.google.com/share?selection.family=Inter:wght@300;400;500;600","@import url('htt
  • Network accessline 57
    56,Kinetic Motion,"Display + Mono",Syncopate,Space Mono,"kinetic, motion, futuristic, speed, wide, tech","Music festivals, automotive, high-energy brands","https://fonts.google.com/share?selection.family=Space+Mono:wght@400;700|Syncopate:wg
  • Network accessline 58
    57,Gen Z Brutal,"Display + Sans",Anton,Epilogue,"brutal, loud, shouty, meme, internet, bold","Gen Z marketing, streetwear, viral campaigns","https://fonts.google.com/share?selection.family=Anton|Epilogue:wght@400;500;600;700","@import url('
  • Network accessline 59
    58,Minimalist Monochrome Editorial,"Serif + Serif + Mono (Triple Stack)",Playfair Display,Source Serif 4,"monochrome, editorial, austere, typographic, pocket manifesto, luxury, high contrast, brutalist mobile","Luxury fashion mobile apps, e
  • Network accessline 60
    59,Modern Dark Cinema (Inter System),"Sans + Mono",Inter,Inter,"dark, cinematic, technical, precision, clean, premium, developer, professional, high-end utility","Developer tools, fintech/trading, AI dashboards, streaming platforms, high-en
  • Network accessline 61
    60,SaaS Mobile Boutique (Calistoga + Inter),"Display Serif + Sans + Mono",Calistoga,Inter,"saas, boutique, electric, warm, editorial, bold, premium, fintech, business, dual font, human warmth","B2B SaaS mobile, fintech apps, analytics dashb
  • Network accessline 62
    61,Terminal CLI Monospace,"Mono + Mono (Single Family)",JetBrains Mono,JetBrains Mono,"terminal, cli, hacker, monospace, matrix, developer, retro-future, command line, precision, OLED","Developer tools, Web3/blockchain apps, hacker aestheti
  • Network accessline 63
    62,Kinetic Brutalism (Space Grotesk),"Geometric Sans (Single Dominant)",Space Grotesk,Space Grotesk,"kinetic, brutalist, aggressive, uppercase, oversized, display, motion, street, bold, high-energy, zine","Music/culture apps, sports platfor
  • Network accessline 64
    63,Flat Design Mobile (System Bold),"Sans + Sans",Inter,Inter,"flat, clean, system, bold, geometric, cross-platform, icon, poster, minimal, functional, responsive","Cross-platform apps, dashboards, system UI, onboarding, marketing pages, in
  • Network accessline 65
    64,Material You MD3 (Roboto System),"Sans (System Default)",Roboto,Roboto,"material design 3, md3, android, google, tonal, friendly, rounded, accessible, adaptive","Android apps, cross-platform tools, productivity software, data-heavy B2B d
  • Network accessline 66
    65,Neo Brutalism Mobile (Space Grotesk Heavy),"Geometric Sans (Bold-Only)",Space Grotesk,Space Grotesk,"neo brutalism, pop art, loud, bold, heavy, stickers, mechanical, high contrast, cream, gen-z","Creative tools, Gen-Z marketing, e-commer
  • Network accessline 67
    66,Bold Typography Mobile (Inter-Tight Poster),"Sans + Serif (Display) + Mono","Inter","Playfair Display","bold typography, editorial, poster, near-black, vermillion, luxury, type-as-hero, manifesto, high-contrast","Creative brand flagships
  • Network accessline 68
    67,Academia Mobile (Cormorant + Crimson + Cinzel),"Serif + Book Serif + Engraved (Triple Stack)","Cormorant Garamond","Crimson Pro","academia, library, mahogany, parchment, brass, scholarly, prestige, antique, victorian, leather","Knowledge
  • Network accessline 69
    68,Cyberpunk Mobile (Orbitron + JetBrains Mono),"Tech Display + Mono","Orbitron","JetBrains Mono","cyberpunk, neon, glitch, hud, sci-fi, dark, matrix green, magenta, chamfered, tactical","Gaming companion apps, fintech/crypto, data visualiz
  • Network accessline 70
    69,Web3 Bitcoin DeFi (Space Grotesk + Inter + Mono),"Geometric Sans + Sans + Mono (Triple)","Space Grotesk","Inter","web3, bitcoin, defi, digital gold, fintech, crypto, trustless, luminescent, precision, dark","DeFi protocols and wallets, N
  • Network accessline 71
    70,Claymorphism Mobile (Nunito + DM Sans),"Display Rounded + Geometric Sans","Nunito","DM Sans","claymorphism, clay, rounded, playful, candy, bubbly, soft, 3d, children, education, tactile, spring, nunito, dm sans","Children education apps,
  • Network accessline 72
    71,Enterprise SaaS Mobile (Plus Jakarta Sans),"Geometric Sans (Single Family)","Plus Jakarta Sans","Plus Jakarta Sans","enterprise, saas, b2b, professional, indigo, modern, approachable, legible, ios dynamic type, android scaling","B2B SaaS
  • Network accessline 73
    72,Sketch Hand-Drawn Mobile (Kalam + Patrick Hand),"Handwritten + Handwritten (Dual)","Kalam","Patrick Hand","sketch, hand-drawn, handwriting, human, imperfect, organic, paper, kalam, patrick hand, education, journal, creative","Journaling 
  • Network accessline 74
    73,Neumorphism Mobile (Plus Jakarta Sans + System),"Geometric Sans (System Fallback)","Plus Jakarta Sans","Plus Jakarta Sans","neumorphism, soft ui, monochromatic, cool grey, minimal, physical, depth, ceramic, system font, utility","Smart h

_archive/snapshots/2026-10-26-defensive-design/forge-design/scripts/core.py

  • Executable scriptline 1
    #!/usr/bin/env python3

_archive/snapshots/2026-10-26-defensive-design/forge-design/scripts/design_system.py

  • Executable scriptline 1
    #!/usr/bin/env python3

_archive/snapshots/2026-10-26-defensive-design/forge-design/scripts/search.py

  • Executable scriptline 1
    #!/usr/bin/env python3

_archive/使用手册.md

  • Network accessline 452
    上下文工程和 Wave 并行执行机制参考了 [GSD (Get Shit Done)](https://github.com/gsd-build/get-shit-done) 框架的核心设计。

_archive/复盘/2026-03-22-文档驱动开发Skill生态构建.md

  • Network accessline 68
    | 类型 | 资源 | 关键价值 | |------|------|---------| | 🏭 产品案例 | [GSD Framework](https://github.com/gsd-build/get-shit-done) | 展示了完整的 skill 生态如何设计——phase 拆分、context engineering、wave 执行 |
  • Network accessline 69
    |------|------|---------| | 🏭 产品案例 | [GSD Framework](https://github.com/gsd-build/get-shit-done) | 展示了完整的 skill 生态如何设计——phase 拆分、context engineering、wave 执行 | | 📐 权威规范 | cn-plan-eng / cn-plan-design / cn-qa SKILL.md | 定义了各领域审查的"完整版"应该包含什么 |
  • Network accessline 70
    | 🏭 产品案例 | [GSD Framework](https://github.com/gsd-build/get-shit-done) | 展示了完整的 skill 生态如何设计——phase 拆分、context engineering、wave 执行 |
  • Network accessline 155
    | 类型 | 资源 | 关键价值 | |------|------|---------| | 🏭 产品案例 | [GSD Framework README](https://github.com/gsd-build/get-shit-done/blob/main/README.zh-CN.md) | 完整展示了 context engineering 的实践——主 agent 30-40% 利用率,子 agent 全新窗口 |
  • Network accessline 156
    |------|------|---------| | 🏭 产品案例 | [GSD Framework README](https://github.com/gsd-build/get-shit-done/blob/main/README.zh-CN.md) | 完整展示了 context engineering 的实践——主 agent 30-40% 利用率,子 agent 全新窗口 | | 📐 权威规范 | Claude Code Agent SDK `isolation
  • Network accessline 157
    | 🏭 产品案例 | [GSD Framework README](https://github.com/gsd-build/get-shit-done/blob/main/README.zh-CN.md) | 完整展示了 context engineering 的实践——主 agent 30-40% 利用率,子 agent 全新窗口 |
  • Network accessline 244
    | 类型 | 资源 | 关键价值 | |------|------|---------| | 📐 权威规范 | [Git Worktree 官方文档](https://git-scm.com/docs/git-worktree) | 定义了 worktree 的创建、管理和清理 |
  • Network accessline 245
    |------|------|---------| | 📐 权威规范 | [Git Worktree 官方文档](https://git-scm.com/docs/git-worktree) | 定义了 worktree 的创建、管理和清理 | | 🏭 产品案例 | Claude Code `claude -w` / `Agent(isolation: "worktree")` | 展示了 AI 工具如何原生支持 worktree |
  • Network accessline 246
    | 📐 权威规范 | [Git Worktree 官方文档](https://git-scm.com/docs/git-worktree) | 定义了 worktree 的创建、管理和清理 |
  • Network accessline 248
    | 🏭 产品案例 | [GSD Framework](https://github.com/gsd-build/get-shit-done) | 展示了 branch-per-feature 在 AI 工作流中的实践 |
  • Access to secretsline 279
    [Credential-related source omitted]

assets/forge-architecture.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 680" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

assets/forge-deliver-comparison.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 780" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

assets/forge-deliver-v2-flow.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 700" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

assets/forge-design-gating.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 400" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

assets/forge-eng-internals.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 520" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

assets/forge-workflow.svg

  • Network accessline 1
    <svg width="100%" viewBox="0 0 680 960" xmlns="http://www.w3.org/2000/svg"><defs><marker id="a" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="co

docs/ENGINEERING-CHANGELOG.md

  • Network accessline 82
    - 后端单测:5 passed。 - 前端构建:Vite build passed。 - 本地服务:`http://127.0.0.1:8899/api/health` 返回 `ok: true`。
  • Network accessline 83
    - 前端构建:Vite build passed。 - 本地服务:`http://127.0.0.1:8899/api/health` 返回 `ok: true`。 - API 冒烟:tasks、reviews、selection 提交均已验证。
  • Network accessline 84
    - 本地服务:`http://127.0.0.1:8899/api/health` 返回 `ok: true`。

docs/QA.md

  • Network accessline 129
    curl -s http://127.0.0.1:8899/api/health
  • Network accessline 135
    curl -s http://127.0.0.1:8899/api/tasks
  • Network accessline 136
    curl -s http://127.0.0.1:8899/api/reviews
  • Network accessline 137
    curl -s -X POST http://127.0.0.1:8899/api/tasks/release-smoke/selection ...
  • Network accessline 144
    - `npx playwright screenshot --full-page http://127.0.0.1:8898 /tmp/fupan-workbench-release.png`:PASS

docs/archive/forge-qa-v3-research.md

  • Network accessline 172
    "dimension": "functional",           "steps": [             { "action": "navigate", "url": "http://localhost:8080" },
  • Network accessline 173
    "steps": [             { "action": "navigate", "url": "http://localhost:8080" },             { "action": "wait", "selector": "[data-testid='feed-section']", "timeout": 5000 }
  • Network accessline 174
    { "action": "navigate", "url": "http://localhost:8080" },
  • Network accessline 603
    - Chrome DevTools MCP: https://github.com/ChromeDevTools/chrome-devtools-mcp
  • Network accessline 604
    - Playwright MCP: https://github.com/microsoft/playwright-mcp
  • Network accessline 605
    - skillsmp.com: https://skillsmp.com/zh
  • Network accessline 606
    - Anthropics webapp-testing: https://github.com/anthropics/skills/blob/main/skills/webapp-testing/SKILL.md
  • Network accessline 607
    - fugazi qa-test-planner: https://github.com/fugazi/test-automation-skills-agents
  • Network accessline 608
    - currents-dev best practices: https://github.com/currents-dev/playwright-best-practices-skill

docs/archive/raw/claude-md-forge-section-v1-2026-07-04.md

  • Network accessline 80
    - 新增 API 路由 → SHALL curl 验证实际行为,不信任路由定义顺序
  • Network accessline 81
    - 修改 proxy/端口配置 → SHALL curl 验证代理路径的实际请求
  • Network accessline 82
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Network accessline 83
    - 修改后端代码 → SHALL 重启服务并 curl health endpoint 确认

docs/archive/skill-audit-2026-07.md

  • Access to secretsline 325
    [Credential-related source omitted]

docs/archive/superpowers-comparison.md

  • Network accessline 3
    本文档深度对比 Doc-Driven Dev 与 [Superpowers](https://github.com/obra/superpowers) 两套 AI 开发流程框架。

docs/archive/v2026.04.24-fupan-workbench-RESEARCH.md

  • Network accessline 44
    参考: - FastAPI Static Files: https://fastapi.tiangolo.com/tutorial/static-files/
  • Network accessline 45
    - FastAPI Static Files: https://fastapi.tiangolo.com/tutorial/static-files/
  • Network accessline 46
    - Uvicorn Settings: https://www.uvicorn.org/settings/
  • Network accessline 55
    参考: - Vite Getting Started: https://vite.dev/guide/
  • Network accessline 56
    - Vite Getting Started: https://vite.dev/guide/
  • Network accessline 57
    - Vite Static Deploy: https://vite.dev/guide/static-deploy.html
  • Network accessline 58
    - Vite Backend Integration: https://vite.dev/guide/backend-integration.html
  • Network accessline 66
    参考: - React Sharing State: https://react.dev/learn/sharing-state-between-components
  • Network accessline 67
    - React Sharing State: https://react.dev/learn/sharing-state-between-components
  • Network accessline 68
    - React form: https://react.dev/reference/react-dom/components/form

docs/forge-user-guide.md

  • Network accessline 368
    | **严格 TDD** | 后端 API / 数据处理 / Bug 修复 | 写失败测试 → 最小实现 → 测试通过 → 重构(红绿重构) | | **轻量 TDD** | 前端组件(*.tsx / *.vue / *.jsx) | 关键交互测试,不要求先红后绿 | | **验证驱动** | 无测试框架时 | 每个任务定义可执行验证命令(curl / 脚本 / 截图) |
  • Network accessline 369
    | **轻量 TDD** | 前端组件(*.tsx / *.vue / *.jsx) | 关键交互测试,不要求先红后绿 | | **验证驱动** | 无测试框架时 | 每个任务定义可执行验证命令(curl / 脚本 / 截图) | | **跳过** | 纯样式 / 配置 / 文档 | 无需测试 |
  • Network accessline 370
    | **验证驱动** | 无测试框架时 | 每个任务定义可执行验证命令(curl / 脚本 / 截图) |
  • Network accessline 392
    1. 运行验证命令(测试 / curl / 脚本)

evals/forge-design-lab/impl/run_impl_eval.py

  • Executable scriptline 1
    #!/usr/bin/env python3

evals/forge-design-lab/run_trigger_eval.py

  • Executable scriptline 1
    #!/usr/bin/env python3

evals/forge-design-lab/system/run_system_eval.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 256
    print("服务(真起一个本机服务发请求)")         import http.client, time
  • Network accessline 257
    import http.client, time
  • Access to secretsline 260
    [Credential-related source omitted]
  • Network accessline 263
    for _ in range(50):             try:                 http.client.HTTPConnection("127.0.0.1", port, timeout=1).request("GET", "/api/lab/status"); break
  • Network accessline 264
    try:                 http.client.HTTPConnection("127.0.0.1", port, timeout=1).request("GET", "/api/lab/status"); break             except OSError:
  • Network accessline 265
    http.client.HTTPConnection("127.0.0.1", port, timeout=1).request("GET", "/api/lab/status"); break
  • Network accessline 269
    def req(method, path, body=None, headers=None):             c = http.client.HTTPConnection("127.0.0.1", port, timeout=5)
  • Network accessline 270
    c = http.client.HTTPConnection("127.0.0.1", port, timeout=5)
  • Access to secretsline 278
    [Credential-related source omitted]
  • Access to secretsline 279
    [Credential-related source omitted]
  • Network accessline 280
    st, b = req("GET", "/api/lab/status", headers={"Host": f"evil.example:{port}"})             check("陌生 Host 被拒(DNS rebinding,坏样本)", st == 403, str(st))             c0 = http.client.HTTPConnection("127.0.0.1", port, timeout=5); c0.request("GE
  • Network accessline 281
    check("陌生 Host 被拒(DNS rebinding,坏样本)", st == 403, str(st))             c0 = http.client.HTTPConnection("127.0.0.1", port, timeout=5); c0.request("GET", "/docs/assets/visuals/system/system.tokens.json", headers={"Host": f"127.0.0.1:{port}"})
  • Network accessline 282
    c0 = http.client.HTTPConnection("127.0.0.1", port, timeout=5); c0.request("GET", "/docs/assets/visuals/system/system.tokens.json", headers={"Host": f"127.0.0.1:{port}"})
  • Network accessline 286
    rev = json.loads(req("GET", "/api/lab/system-rev")[1])["rev"]             body = json.dumps({"kind": "system", "rev": rev, "feedback": after["feedback"]})             st, b = req("POST", "/api/lab/save", body, {"Content-Type": "text/plain",
  • Network accessline 287
    body = json.dumps({"kind": "system", "rev": rev, "feedback": after["feedback"]})             st, b = req("POST", "/api/lab/save", body, {"Content-Type": "text/plain", "Origin": "https://evil.example"})             check("跨站 POST 被拒(坏样本)", s
  • Network accessline 288
    st, b = req("POST", "/api/lab/save", body, {"Content-Type": "text/plain", "Origin": "https://evil.example"})
  • Network accessline 294
    json.dump(disk, open(os.path.join(root, "docs/assets/visuals/system/system.tokens.json"), "w"), ensure_ascii=False)             rev = json.loads(req("GET", "/api/lab/system-rev")[1])["rev"]             st, b = req("POST", "/api/lab/save", j
  • Network accessline 295
    rev = json.loads(req("GET", "/api/lab/system-rev")[1])["rev"]             st, b = req("POST", "/api/lab/save", json.dumps({"kind": "system", "rev": rev, "feedback": disk["feedback"] + [{"t": "页面反馈", "at": "2026-03-01T00:00"}]}), {"Content-T
  • Network accessline 296
    st, b = req("POST", "/api/lab/save", json.dumps({"kind": "system", "rev": rev, "feedback": disk["feedback"] + [{"t": "页面反馈", "at": "2026-03-01T00:00"}]}), {"Content-Type": "application/json", "Origin": f"http://127.0.0.1:{port}"})

evals/forge-feature-doc/run_trigger_eval.py

  • Executable scriptline 1
    #!/usr/bin/env python3

evals/forge-feature-doc/score_doc.py

  • Executable scriptline 1
    #!/usr/bin/env python3

examples/pomodoro/README.md

  • Network accessline 3
    用 Forge 的 Skill 把一个番茄钟网页从一句想法做到上线。项目本身在独立仓库 [antonailog/forge-demo-pomodoro](https://github.com/antonailog/forge-demo-pomodoro)(本地 `~/claudecode_workspace/项目/forge-demo-pomodoro`),这里记录每个 Skill 在这次示范里的输入、过程和产物,`shots/` 放配图用的截图。

examples/pomodoro/forge-bugfix.md

  • Network accessline 44
    13. **文档同步**:需求设计文档盯着页面代码文件,代码改了文档没改,项目的文档检查会拦下。用 forge-feature-doc 更新:待拍板里删掉这一项、「交互与细节」写明悬停仍柔和变色而切阶段直接换、关键改动加一行,检查通过。另把工程文档的技术债、工程变更日志、验收手册里「未修复」的说法同步成已修复,并在验收手册的回归清单里加上新的回归脚本。 14. **合并(P7)**:合并预演在一个临时的、指向远程 main 的独立检出里做(Skill 写的是在主检出上预演再撤
  • Network accessline 45
    14. **合并(P7)**:合并预演在一个临时的、指向远程 main 的独立检出里做(Skill 写的是在主检出上预演再撤销,但主检出是主线会话的工作区),无冲突,用完删掉。     - 演示时由 AI 按默认确认:合并(A)。按示范要求走合并请求([#3](https://github.com/antonailog/forge-demo-pomodoro/pull/3))而不是本地直接推 main:推送前查了一遍公开仓库不该有的东西,把报告里三处本机绝对路径改成相对仓库根
  • Network accessline 46
    - 演示时由 AI 按默认确认:合并(A)。按示范要求走合并请求([#3](https://github.com/antonailog/forge-demo-pomodoro/pull/3))而不是本地直接推 main:推送前查了一遍公开仓库不该有的东西,把报告里三处本机绝对路径改成相对仓库根目录;拉取远程后再预演一次,推送修复分支、开合并请求(可合并、无冲突,仓库没有远程自动检查),用保留分支历史的方式合并,再把本地 main 快进到远程 main,确认 main 的内容和
  • Network accessline 56
    (相对项目仓库根目录;都已随合并请求 [#3](https://github.com/antonailog/forge-demo-pomodoro/pull/3) 合进 main,分支 `bugfix/bf-1023-1`)

examples/pomodoro/forge-design-lab.md

  • Network accessline 45
    最适合截图: - **工作台的「手机横屏」那一屏**(首选):在项目根目录起服务 `python3 ~/.claude/skills/forge-design-lab/scripts/serve.py .`,打开 `http://127.0.0.1:4577/docs/assets/visuals/pomodoro/2026-10-23-skeleton-v1.0.html`;层级选「番茄钟页面」、状态「专注进行中」、视口「手机横屏」;右侧面板「按层」展开「1 结构」,找到「
  • Network accessline 46
    - **工作台的「手机横屏」那一屏**(首选):在项目根目录起服务 `python3 ~/.claude/skills/forge-design-lab/scripts/serve.py .`,打开 `http://127.0.0.1:4577/docs/assets/visuals/pomodoro/2026-10-23-skeleton-v1.0.html`;层级选「番茄钟页面」、状态「专注进行中」、视口「手机横屏」;右侧面板「按层」展开「1 结构」,找到「矮屏阈值」。把

examples/pomodoro/forge-doc-release.md

  • Network accessline 59
    - `docs/PRD.md`、`docs/DESIGN.md`、`docs/ENGINEERING.md`、`docs/modules/番茄钟.md`:状态同步。 - `docs/README.md`、`docs/INDEX.md`:版本记录入口。 - 合并请求:https://github.com/antonailog/forge-demo-pomodoro/pull/2 (已合并,合并提交 `a456b7f`)。
  • Network accessline 61
    - 合并请求:https://github.com/antonailog/forge-demo-pomodoro/pull/2 (已合并,合并提交 `a456b7f`)。
  • Network accessline 65
    - **GitHub 仓库首页** https://github.com/antonailog/forge-demo-pomodoro :README 渲染出来的样子——顶上是四种真实状态的总览图,下面「番茄钟能做什么」「怎么打开」两节。配一句「合并之后,文档也跟着同步到了用户能看懂的样子」。

examples/pomodoro/forge-ship.md

  • Network accessline 37
    | 基础分支:main                                      | | 提交:67653df(审查修正)、ca8453e(合入 main)      | | PR:https://github.com/antonailog/forge-demo-pomodoro/pull/1 |
  • Network accessline 38
    | 提交:67653df(审查修正)、ca8453e(合入 main)      | | PR:https://github.com/antonailog/forge-demo-pomodoro/pull/1 | | PR 状态:已合并                                     |
  • Network accessline 39
    | PR:https://github.com/antonailog/forge-demo-pomodoro/pull/1 |
  • Network accessline 54
    - 合并请求:https://github.com/antonailog/forge-demo-pomodoro/pull/1 (已合并,合并提交 `2282272`)
  • Network accessline 60
    - **合并请求页面** https://github.com/antonailog/forge-demo-pomodoro/pull/1 的描述一屏:「变更摘要 / 测试情况 / 注意事项 / 是否需要部署 / 迁移与数据」五节齐全,注意事项里老实写了「后台到点会晚响、需要人工验证」和「无远程自动检查」。

examples/pomodoro/shots/codex-delegate/timer-core-head.js

  • Executable scriptline 1
    Executable file

examples/pomodoro/shots/forge-dev/status.md

  • Network accessline 10
    | design | [✅ 已完成] | forge-design | 2026-10-23T00:18:45-07:00 | 2026-10-23T00:36:24-07:00 | DESIGN.md v1.0(L1,评分 A−)+ 工作台页面包 docs/assets/visuals/pomodoro/,两轮审查定稿 | | design-impl | [✅ 已完成] | forge-design-impl | 2026-10-23T00:47:15-07:00 | 20
  • Network accessline 11
    | design-impl | [✅ 已完成] | forge-design-impl | 2026-10-23T00:47:15-07:00 | 2026-10-23T01:03:28-07:00 | 分支 eng/pomodoro-timer-2026-10-23(worktree .worktrees/pomodoro-timer)提交 2d218c9、ad9de43:index.html + style.css;Codex 两份任务各一轮通过;骨架比对 5/5、验收脚
  • Network accessline 12
    | eng | [✅ 已完成] | forge-eng | 2026-10-23T01:10:46-07:00 | 2026-10-23T01:58:56-07:00 | 完整模式;分支 eng/pomodoro-timer-2026-10-23 提交 bfeba66、1bb6cc7、ed1968a、7843ccb、794ff8e、9aee673(保留分支,未推送);Codex 三份任务各一轮通过;node --test 22/22;浏览器自验 17/17;交接:APP_UR

examples/pomodoro/shots/forge-doc-release/发布前README.md

  • Network accessline 5
    从一句想法「我想做一个番茄钟网页」开始,用 [Forge](https://github.com/antonailog/forge-skills) 的 Skill 一步步做到上线:讨论需求、写 PRD、做设计、写代码、验收、审查、发布、修 bug、复盘。每一步的产物都留在这个仓库里,可以对照着看 Forge 每个 Skill 实际做了什么。

examples/pomodoro/shots/forge-qa/QA.md

  • Network accessline 10
    **版本:** v1.0 **日期:** 2026-10-23 **被测:** 分支 `eng/pomodoro-timer-2026-10-23`,提交 `9aee673`,`http://127.0.0.1:4577/index.html`(worktree 根目录静态服务)
  • Network accessline 11
    **日期:** 2026-10-23 **被测:** 分支 `eng/pomodoro-timer-2026-10-23`,提交 `9aee673`,`http://127.0.0.1:4577/index.html`(worktree 根目录静态服务) **状态:** 已验收(User Gate 接受;附 1 条低级别设计偏离待拍板、5 项需求方手动验证)
  • Network accessline 12
    **被测:** 分支 `eng/pomodoro-timer-2026-10-23`,提交 `9aee673`,`http://127.0.0.1:4577/index.html`(worktree 根目录静态服务)
  • Network accessline 230
    | 浏览器 | Playwright 1.59.1 自带无头 Chromium 147(chrome-headless-shell) | | Node | v22.22.1;不装任何项目依赖,脚本通过 `npm root -g` 使用全局 Playwright | | 页面 | worktree 根目录 `python3 -m http.server 4577 --bind 127.0.0.1`,`APP_URL=http://127.0.0.1:4577/index.htm
  • Network accessline 231
    | Node | v22.22.1;不装任何项目依赖,脚本通过 `npm root -g` 使用全局 Playwright | | 页面 | worktree 根目录 `python3 -m http.server 4577 --bind 127.0.0.1`,`APP_URL=http://127.0.0.1:4577/index.html`;另测 `file://` 直接打开 | | 可访问性 | 本机 axe-core 4.11.1,以本地文件注入,不发外部请求 |
  • Network accessline 232
    | 页面 | worktree 根目录 `python3 -m http.server 4577 --bind 127.0.0.1`,`APP_URL=http://127.0.0.1:4577/index.html`;另测 `file://` 直接打开 |
  • Network accessline 249
    # 骨架与真页面比对(forge-design-lab) node ~/.claude/skills/forge-design-lab/scripts/compare_impl.mjs docs/assets/visuals/pomodoro/2026-10-23-skeleton-v1.0.html \   --app http://127.0.0.1:4577/index.html --json .gstack/qa-reports/impl-compare/impl-c
  • Network accessline 250
    node ~/.claude/skills/forge-design-lab/scripts/compare_impl.mjs docs/assets/visuals/pomodoro/2026-10-23-skeleton-v1.0.html    --app http://127.0.0.1:4577/index.html --json .gstack/qa-reports/impl-compare/impl-compare.json --shots .gstack/qa
  • Network accessline 251
    --app http://127.0.0.1:4577/index.html --json .gstack/qa-reports/impl-compare/impl-compare.json --shots .gstack/qa-reports/impl-compare

install.sh

  • Executable scriptline 1
    #!/bin/bash
  • Dangerous shell operationline 130
    run rm "$dst"
  • Dangerous shell operationline 135
    run rm -rf "$dst"
  • Dangerous shell operationline 157
    run rm "$dst"
  • Dangerous shell operationline 161
    run rm -rf "$dst"
  • Network accessline 227
    done   echo "NOTE: forge-design-lab needs design-studio (its workbench server and token tools). Not found."   echo "      Install: git clone https://github.com/antonailog/design-studio.git ~/.design-studio"
  • Network accessline 228
    echo "NOTE: forge-design-lab needs design-studio (its workbench server and token tools). Not found."   echo "      Install: git clone https://github.com/antonailog/design-studio.git ~/.design-studio"   echo "      Or point DESIGN_STUDIO_HOM
  • Network accessline 229
    echo "      Install: git clone https://github.com/antonailog/design-studio.git ~/.design-studio"

skills/_shared/generate_image2.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 99
    [Credential-related source omitted]
  • Network accessline 102
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Network accessline 103
    request = urllib.request.Request(
  • Access to secretsline 107
    [Credential-related source omitted]
  • Network accessline 113
    try:         with urllib.request.urlopen(request, timeout=args.timeout) as response:
  • Network accessline 114
    with urllib.request.urlopen(request, timeout=args.timeout) as response:
  • Possible obfuscationline 145
    path.write_bytes(base64.b64decode(b64_json))

skills/_shared/visual-decision-layer.md

  • Access to secretsline 78
    [Credential-related source omitted]

skills/forge-brainstorm/references/thinking-doc-template.md

  • Possible obfuscationline 222
    <U+200B>```mermaid
  • Possible obfuscationline 227
    <U+200B>```

skills/forge-bugfix/SKILL.md

skills/forge-bugfix/references/p0-p1-session-setup.md

  • Network accessline 52
    for port in 3456 3000 4000 5173 8080 8000; do     if lsof -i :"$port" -sTCP:LISTEN &>/dev/null 2>&1; then       APP_URL="http://localhost:$port"
  • Network accessline 53
    if lsof -i :"$port" -sTCP:LISTEN &>/dev/null 2>&1; then       APP_URL="http://localhost:$port"       _PID=$(lsof -ti :"$port" -sTCP:LISTEN 2>/dev/null | head -1)
  • Network accessline 54
    APP_URL="http://localhost:$port"

skills/forge-bugfix/references/p3-p5-fix-loop.md

  • Dangerous shell operationline 148
    curl -s $APP_URL/api/endpoint | python3 -m json.tool
  • Network accessline 148
    curl -s $APP_URL/api/endpoint | python3 -m json.tool

skills/forge-bugfix/references/p6-p7-acceptance.md

  • Network accessline 37
    | 配置/开关/数据检查 | 前端/权限/数据可见性 bug 的报告有"配置 / 开关 / 数据就绪检查" | 回 P4 重查根因 | | APP_URL 来源(如 bug 类型需要) | `APP_URL` 来自 `npm run dev:status` / `scripts/dev-stack.sh status` 输出 | 回 P3.2 重启并重新读取 | | 应用可访问(如 bug 类型需要) | `curl -sf "$APP_URL" > /dev/null` |
  • Network accessline 38
    | APP_URL 来源(如 bug 类型需要) | `APP_URL` 来自 `npm run dev:status` / `scripts/dev-stack.sh status` 输出 | 回 P3.2 重启并重新读取 | | 应用可访问(如 bug 类型需要) | `curl -sf "$APP_URL" > /dev/null` | 用统一 dev 入口重启 | | 前后端进程身份核对 | `dev:status` 或 `lsof -p $PID \| grep c
  • Network accessline 39
    | 应用可访问(如 bug 类型需要) | `curl -sf "$APP_URL" > /dev/null` | 用统一 dev 入口重启 |
  • Network accessline 110
    校验器失败即 `QA_INCOMPLETE`。**不得**因为单元测试、curl smoke 或 forge-qa 文本返回看起来通过,就绕过这个门禁。
  • Network accessline 217
    验收地址(QA 也使用同一组地址): Frontend: http://localhost:xxxx
  • Network accessline 218
    Frontend: http://localhost:xxxx
  • Network accessline 219
    Backend: http://localhost:yyyy

skills/forge-bugfix/scripts/get-session-id.sh

  • Executable scriptline 1
    #!/bin/bash

skills/forge-bugfix/scripts/validate-bugfix-report.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 43
    "_待 forge-qa 填写_",     "待 forge-qa",     "http://localhost:xxxx",
  • Network accessline 44
    "待 forge-qa",     "http://localhost:xxxx",     "http://localhost:yyyy",
  • Network accessline 45
    "http://localhost:xxxx",
  • Network accessline 46
    "http://localhost:yyyy",

skills/forge-bugfix/templates/review-checklist.md

  • Network accessline 114
    | 服务 | 地址 | 来源 | 进程身份校验 | 结论 | |---|---|---|---|---| | Frontend | {{http://localhost:xxxx}} | {{dev:status / dev-stack status / 其他}} | {{PID=, cwd=, branch=}} | {{PASS / FAIL / N/A}} |
  • Network accessline 115
    |---|---|---|---|---| | Frontend | {{http://localhost:xxxx}} | {{dev:status / dev-stack status / 其他}} | {{PID=, cwd=, branch=}} | {{PASS / FAIL / N/A}} | | Backend / API | {{http://localhost:xxxx 或 —}} | {{dev:status / dev-stack status / 其他
  • Network accessline 116
    | Frontend | {{http://localhost:xxxx}} | {{dev:status / dev-stack status / 其他}} | {{PID=, cwd=, branch=}} | {{PASS / FAIL / N/A}} | | Backend / API | {{http://localhost:xxxx 或 —}} | {{dev:status / dev-stack status / 其他}} | {{PID=, cwd=, bra
  • Network accessline 117
    | Backend / API | {{http://localhost:xxxx 或 —}} | {{dev:status / dev-stack status / 其他}} | {{PID=, cwd=, branch=}} | {{PASS / FAIL / N/A}} |
  • Network accessline 118
    | API Health | {{/health 或 —}} | {{curl / 其他}} | {{状态码 / 响应摘要}} | {{PASS / FAIL / N/A}} |

skills/forge-design-lab/SKILL.md

  • Network accessline 61
    **先起服务,再打开页面**。`serve.py` 把仓库根当静态根,页面 URL 形如 `http://127.0.0.1:4577/docs/assets/visuals/<page>/<file>.html`,页面里那些跨目录相对路径原样可用。
  • Network accessline 62
    `http://127.0.0.1:4577/docs/assets/visuals/<page>/<file>.html`,页面里那些跨目录相对路径原样可用。

skills/forge-design-lab/scripts/_design_studio.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    INSTALL = 'git clone https://github.com/antonailog/design-studio.git ~/.design-studio'
  • Access to secretsline 26
    [Credential-related source omitted]

skills/forge-design-lab/scripts/adapt_tokens.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/build_template.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 14
    if (usable(d)) return d;   }   die('✗ 找不到带骨架模式的 design-studio。安装:git clone https://github.com/antonailog/design-studio.git ~/.design-studio(或用 DESIGN_STUDIO_HOME 指到它的目录;已装的旧版本 git pull)');
  • Network accessline 15
    }   die('✗ 找不到带骨架模式的 design-studio。安装:git clone https://github.com/antonailog/design-studio.git ~/.design-studio(或用 DESIGN_STUDIO_HOME 指到它的目录;已装的旧版本 git pull)'); }
  • Network accessline 16
    die('✗ 找不到带骨架模式的 design-studio。安装:git clone https://github.com/antonailog/design-studio.git ~/.design-studio(或用 DESIGN_STUDIO_HOME 指到它的目录;已装的旧版本 git pull)');

skills/forge-design-lab/scripts/build_tokens.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/check_system.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/compare_impl.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 5
    //   node compare_impl.mjs <骨架 html 路径或 URL> [--app <产品页 URL>] [--json <报告输出>] [--shots <目录>] // 比对清单写在 <page>.tokens.json 的 implCheck 字段(详见 references/spec-schema.md): //   {"app": "http://127.0.0.1:3567/#ai-search", "viewport": {"w":1440,
  • Network accessline 6
    // 比对清单写在 <page>.tokens.json 的 implCheck 字段(详见 references/spec-schema.md): //   {"app": "http://127.0.0.1:3567/#ai-search", "viewport": {"w":1440,"h":900}, "lab": {"level":"page","state":"done"}, //    "tolerance": 2, "waitFor": "[data-test
  • Network accessline 7
    //   {"app": "http://127.0.0.1:3567/#ai-search", "viewport": {"w":1440,"h":900}, "lab": {"level":"page","state":"done"},

skills/forge-design-lab/scripts/extract_system.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/merge_saved.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/render_design_table.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/scaffold_pack.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 117
    if fonts_google:         fam = "&".join("family=" + f.replace(" ", "+") + ":wght@400;500;600;700" for f in fonts_google[:4])         font_links = ('<link rel="preconnect" href="https://fonts.googleapis.com">\n<link rel="preconnect" href="ht
  • Network accessline 118
    fam = "&".join("family=" + f.replace(" ", "+") + ":wght@400;500;600;700" for f in fonts_google[:4])         font_links = ('<link rel="preconnect" href="https://fonts.googleapis.com">\n<link rel="preconnect" href="https://fonts.gstatic.com" 
  • Network accessline 119
    font_links = ('<link rel="preconnect" href="https://fonts.googleapis.com">\n<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>\n'
  • Network accessline 120
    f'<link href="https://fonts.googleapis.com/css2?{fam}&display=swap" rel="stylesheet">')

skills/forge-design-lab/scripts/serve.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design-lab/scripts/verify_pack.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/forge-design/data/products.csv

  • Access to secretsline 112
    [Credential-related source omitted]

skills/forge-design/data/typography.csv

  • Network accessline 1
    No,Font Pairing Name,Category,Heading Font,Body Font,Mood/Style Keywords,Best For,Google Fonts URL,CSS Import,Tailwind Config,Notes 1,Classic Elegant,"Serif + Sans",Playfair Display,Inter,"elegant, luxury, sophisticated, timeless, premium, 
  • Network accessline 2
    1,Classic Elegant,"Serif + Sans",Playfair Display,Inter,"elegant, luxury, sophisticated, timeless, premium, editorial","Luxury brands, fashion, spa, beauty, editorial, magazines, high-end e-commerce","https://fonts.google.com/share?selectio
  • Network accessline 3
    2,Modern Professional,"Sans + Sans",Poppins,Open Sans,"modern, professional, clean, corporate, friendly, approachable","SaaS, corporate sites, business apps, startups, professional services","https://fonts.google.com/share?selection.family=
  • Network accessline 4
    3,Tech Startup,"Sans + Sans",Space Grotesk,DM Sans,"tech, startup, modern, innovative, bold, futuristic","Tech companies, startups, SaaS, developer tools, AI products","https://fonts.google.com/share?selection.family=DM+Sans:wght@400;500;70
  • Network accessline 5
    4,Editorial Classic,"Serif + Serif",Cormorant Garamond,Libre Baskerville,"editorial, classic, literary, traditional, refined, bookish","Publishing, blogs, news sites, literary magazines, book covers","https://fonts.google.com/share?selectio
  • Network accessline 6
    5,Minimal Swiss,"Sans + Sans",Inter,Inter,"minimal, clean, swiss, functional, neutral, professional","Dashboards, admin panels, documentation, enterprise apps, design systems","https://fonts.google.com/share?selection.family=Inter:wght@300;
  • Network accessline 7
    6,Playful Creative,"Display + Sans",Fredoka,Nunito,"playful, friendly, fun, creative, warm, approachable","Children's apps, educational, gaming, creative tools, entertainment","https://fonts.google.com/share?selection.family=Fredoka:wght@40
  • Network accessline 8
    7,Bold Statement,"Display + Sans",Bebas Neue,Source Sans 3,"bold, impactful, strong, dramatic, modern, headlines","Marketing sites, portfolios, agencies, event pages, sports","https://fonts.google.com/share?selection.family=Bebas+Neue|Sourc
  • Network accessline 9
    8,Wellness Calm,"Serif + Sans",Lora,Raleway,"calm, wellness, health, relaxing, natural, organic","Health apps, wellness, spa, meditation, yoga, organic brands","https://fonts.google.com/share?selection.family=Lora:wght@400;500;600;700|Ralew
  • Network accessline 10
    9,Developer Mono,"Mono + Sans",JetBrains Mono,IBM Plex Sans,"code, developer, technical, precise, functional, hacker","Developer tools, documentation, code editors, tech blogs, CLI apps","https://fonts.google.com/share?selection.family=IBM+
  • Network accessline 11
    10,Retro Vintage,"Display + Serif",Abril Fatface,Merriweather,"retro, vintage, nostalgic, dramatic, decorative, bold","Vintage brands, breweries, restaurants, creative portfolios, posters","https://fonts.google.com/share?selection.family=Ab
  • Network accessline 12
    11,Geometric Modern,"Sans + Sans",Outfit,Work Sans,"geometric, modern, clean, balanced, contemporary, versatile","General purpose, portfolios, agencies, modern brands, landing pages","https://fonts.google.com/share?selection.family=Outfit:w
  • Network accessline 13
    12,Luxury Serif,"Serif + Sans",Cormorant,Montserrat,"luxury, high-end, fashion, elegant, refined, premium","Fashion brands, luxury e-commerce, jewelry, high-end services","https://fonts.google.com/share?selection.family=Cormorant:wght@400;5
  • Network accessline 14
    13,Friendly SaaS,"Sans + Sans",Plus Jakarta Sans,Plus Jakarta Sans,"friendly, modern, saas, clean, approachable, professional","SaaS products, web apps, dashboards, B2B, productivity tools","https://fonts.google.com/share?selection.family=P
  • Network accessline 15
    14,News Editorial,"Serif + Sans",Newsreader,Roboto,"news, editorial, journalism, trustworthy, readable, informative","News sites, blogs, magazines, journalism, content-heavy sites","https://fonts.google.com/share?selection.family=Newsreader
  • Network accessline 16
    15,Handwritten Charm,"Script + Sans",Caveat,Quicksand,"handwritten, personal, friendly, casual, warm, charming","Personal blogs, invitations, creative portfolios, lifestyle brands","https://fonts.google.com/share?selection.family=Caveat:wgh
  • Network accessline 17
    16,Corporate Trust,"Sans + Sans",Lexend,Source Sans 3,"corporate, trustworthy, accessible, readable, professional, clean","Enterprise, government, healthcare, finance, accessibility-focused","https://fonts.google.com/share?selection.family=
  • Network accessline 18
    17,Brutalist Raw,"Mono + Mono",Space Mono,Space Mono,"brutalist, raw, technical, monospace, minimal, stark","Brutalist designs, developer portfolios, experimental, tech art","https://fonts.google.com/share?selection.family=Space+Mono:wght@4
  • Network accessline 19
    18,Fashion Forward,"Sans + Sans",Syne,Manrope,"fashion, avant-garde, creative, bold, artistic, edgy","Fashion brands, creative agencies, art galleries, design studios","https://fonts.google.com/share?selection.family=Manrope:wght@300;400;50
  • Network accessline 20
    19,Soft Rounded,"Sans + Sans",Varela Round,Nunito Sans,"soft, rounded, friendly, approachable, warm, gentle","Children's products, pet apps, friendly brands, wellness, soft UI","https://fonts.google.com/share?selection.family=Nunito+Sans:wg
  • Network accessline 21
    20,Premium Sans,"Sans + Sans",Satoshi,General Sans,"premium, modern, clean, sophisticated, versatile, balanced","Premium brands, modern agencies, SaaS, portfolios, startups","https://fonts.google.com/share?selection.family=DM+Sans:wght@400;
  • Network accessline 22
    21,Vietnamese Friendly,"Sans + Sans",Be Vietnam Pro,Noto Sans,"vietnamese, international, readable, clean, multilingual, accessible","Vietnamese sites, multilingual apps, international products","https://fonts.google.com/share?selection.fam
  • Network accessline 23
    22,Japanese Elegant,"Serif + Sans",Noto Serif JP,Noto Sans JP,"japanese, elegant, traditional, modern, multilingual, readable","Japanese sites, Japanese restaurants, cultural sites, anime/manga","https://fonts.google.com/share?selection.fam
  • Network accessline 24
    23,Korean Modern,"Sans + Sans",Noto Sans KR,Noto Sans KR,"korean, modern, clean, professional, multilingual, readable","Korean sites, K-beauty, K-pop, Korean businesses, multilingual","https://fonts.google.com/share?selection.family=Noto+Sa
  • Network accessline 25
    24,Chinese Traditional,"Serif + Sans",Noto Serif TC,Noto Sans TC,"chinese, traditional, elegant, cultural, multilingual, readable","Traditional Chinese sites, cultural content, Taiwan/Hong Kong markets","https://fonts.google.com/share?selec
  • Network accessline 26
    25,Chinese Simplified,"Sans + Sans",Noto Sans SC,Noto Sans SC,"chinese, simplified, modern, professional, multilingual, readable","Simplified Chinese sites, mainland China market, business apps","https://fonts.google.com/share?selection.fam
  • Network accessline 27
    26,Arabic Elegant,"Serif + Sans",Noto Naskh Arabic,Noto Sans Arabic,"arabic, elegant, traditional, cultural, RTL, readable","Arabic sites, Middle East market, Islamic content, bilingual sites","https://fonts.google.com/share?selection.famil
  • Network accessline 28
    27,Thai Modern,"Sans + Sans",Noto Sans Thai,Noto Sans Thai,"thai, modern, readable, clean, multilingual, accessible","Thai sites, Southeast Asia, tourism, Thai restaurants","https://fonts.google.com/share?selection.family=Noto+Sans+Thai:wgh
  • Network accessline 29
    28,Hebrew Modern,"Sans + Sans",Noto Sans Hebrew,Noto Sans Hebrew,"hebrew, modern, RTL, clean, professional, readable","Hebrew sites, Israeli market, Jewish content, bilingual sites","https://fonts.google.com/share?selection.family=Noto+Sans
  • Network accessline 30
    29,Legal Professional,"Serif + Sans",EB Garamond,Lato,"legal, professional, traditional, trustworthy, formal, authoritative","Law firms, legal services, contracts, formal documents, government","https://fonts.google.com/share?selection.fami
  • Network accessline 31
    30,Medical Clean,"Sans + Sans",Figtree,Noto Sans,"medical, clean, accessible, professional, healthcare, trustworthy","Healthcare, medical clinics, pharma, health apps, accessibility","https://fonts.google.com/share?selection.family=Figtree:
  • Network accessline 32
    31,Financial Trust,"Sans + Sans",IBM Plex Sans,IBM Plex Sans,"financial, trustworthy, professional, corporate, banking, serious","Banks, finance, insurance, investment, fintech, enterprise","https://fonts.google.com/share?selection.family=I
  • Network accessline 33
    32,Real Estate Luxury,"Serif + Sans",Cinzel,Josefin Sans,"real estate, luxury, elegant, sophisticated, property, premium","Real estate, luxury properties, architecture, interior design","https://fonts.google.com/share?selection.family=Cinze
  • Network accessline 34
    33,Restaurant Menu,"Serif + Sans",Playfair Display SC,Karla,"restaurant, menu, culinary, elegant, foodie, hospitality","Restaurants, cafes, food blogs, culinary, hospitality","https://fonts.google.com/share?selection.family=Karla:wght@300;4
  • Network accessline 35
    34,Art Deco,"Display + Sans",Poiret One,Didact Gothic,"art deco, vintage, 1920s, elegant, decorative, gatsby","Vintage events, art deco themes, luxury hotels, classic cocktails","https://fonts.google.com/share?selection.family=Didact+Gothic
  • Network accessline 36
    35,Magazine Style,"Serif + Sans",Libre Bodoni,Public Sans,"magazine, editorial, publishing, refined, journalism, print","Magazines, online publications, editorial content, journalism","https://fonts.google.com/share?selection.family=Libre+B
  • Network accessline 37
    36,Crypto/Web3,"Sans + Sans",Orbitron,Exo 2,"crypto, web3, futuristic, tech, blockchain, digital","Crypto platforms, NFT, blockchain, web3, futuristic tech","https://fonts.google.com/share?selection.family=Exo+2:wght@300;400;500;600;700|Orb
  • Network accessline 38
    37,Gaming Bold,"Display + Sans",Russo One,Chakra Petch,"gaming, bold, action, esports, competitive, energetic","Gaming, esports, action games, competitive sports, entertainment","https://fonts.google.com/share?selection.family=Chakra+Petch:
  • Network accessline 39
    38,Indie/Craft,"Display + Sans",Amatic SC,Cabin,"indie, craft, handmade, artisan, organic, creative","Craft brands, indie products, artisan, handmade, organic products","https://fonts.google.com/share?selection.family=Amatic+SC:wght@400;700
  • Network accessline 40
    39,Startup Bold,"Sans + Sans",Clash Display,Satoshi,"startup, bold, modern, innovative, confident, dynamic","Startups, pitch decks, product launches, bold brands","https://fonts.google.com/share?selection.family=Outfit:wght@400;500;600;700|
  • Network accessline 41
    40,E-commerce Clean,"Sans + Sans",Rubik,Nunito Sans,"ecommerce, clean, shopping, product, retail, conversion","E-commerce, online stores, product pages, retail, shopping","https://fonts.google.com/share?selection.family=Nunito+Sans:wght@300
  • Network accessline 42
    41,Academic/Research,"Serif + Sans",Crimson Pro,Atkinson Hyperlegible,"academic, research, scholarly, accessible, readable, educational","Universities, research papers, academic journals, educational","https://fonts.google.com/share?selecti
  • Network accessline 43
    42,Dashboard Data,"Mono + Sans",Fira Code,Fira Sans,"dashboard, data, analytics, code, technical, precise","Dashboards, analytics, data visualization, admin panels","https://fonts.google.com/share?selection.family=Fira+Code:wght@400;500;600
  • Network accessline 44
    43,Music/Entertainment,"Display + Sans",Righteous,Poppins,"music, entertainment, fun, energetic, bold, performance","Music platforms, entertainment, events, festivals, performers","https://fonts.google.com/share?selection.family=Poppins:wgh
  • Network accessline 45
    44,Minimalist Portfolio,"Sans + Sans",Archivo,Space Grotesk,"minimal, portfolio, designer, creative, clean, artistic","Design portfolios, creative professionals, minimalist brands","https://fonts.google.com/share?selection.family=Archivo:wg
  • Network accessline 46
    45,Kids/Education,"Display + Sans",Baloo 2,Comic Neue,"kids, education, playful, friendly, colorful, learning","Children's apps, educational games, kid-friendly content","https://fonts.google.com/share?selection.family=Baloo+2:wght@400;500;
  • Network accessline 47
    46,Wedding/Romance,"Script + Serif",Great Vibes,Cormorant Infant,"wedding, romance, elegant, script, invitation, feminine","Wedding sites, invitations, romantic brands, bridal","https://fonts.google.com/share?selection.family=Cormorant+Infa
  • Network accessline 48
    47,Science/Tech,"Sans + Sans",Exo,Roboto Mono,"science, technology, research, data, futuristic, precise","Science, research, tech documentation, data-heavy sites","https://fonts.google.com/share?selection.family=Exo:wght@300;400;500;600;700
  • Network accessline 49
    48,Accessibility First,"Sans + Sans",Atkinson Hyperlegible,Atkinson Hyperlegible,"accessible, readable, inclusive, WCAG, dyslexia-friendly, clear","Accessibility-critical sites, government, healthcare, inclusive design","https://fonts.googl
  • Network accessline 50
    49,Sports/Fitness,"Sans + Sans",Barlow Condensed,Barlow,"sports, fitness, athletic, energetic, condensed, action","Sports, fitness, gyms, athletic brands, competition","https://fonts.google.com/share?selection.family=Barlow+Condensed:wght@4
  • Network accessline 51
    50,Luxury Minimalist,"Serif + Sans",Bodoni Moda,Jost,"luxury, minimalist, high-end, sophisticated, refined, premium","Luxury minimalist brands, high-end fashion, premium products","https://fonts.google.com/share?selection.family=Bodoni+Moda
  • Network accessline 52
    51,Tech/HUD Mono,"Mono + Mono",Share Tech Mono,Fira Code,"tech, futuristic, hud, sci-fi, data, monospaced, precise","Sci-fi interfaces, developer tools, cybersecurity, dashboards","https://fonts.google.com/share?selection.family=Fira+Code:w
  • Network accessline 53
    52,Pixel Retro,"Display + Sans",Press Start 2P,VT323,"pixel, retro, gaming, 8-bit, nostalgic, arcade","Pixel art games, retro websites, creative portfolios","https://fonts.google.com/share?selection.family=Press+Start+2P|VT323","@import url
  • Network accessline 54
    53,Neubrutalist Bold,"Display + Sans",Lexend Mega,Public Sans,"bold, neubrutalist, loud, strong, geometric, quirky","Neubrutalist designs, Gen Z brands, bold marketing","https://fonts.google.com/share?selection.family=Lexend+Mega:wght@100..
  • Network accessline 55
    54,Academic/Archival,"Serif + Serif",EB Garamond,Crimson Text,"academic, old-school, university, research, serious, traditional","University sites, archives, research papers, history","https://fonts.google.com/share?selection.family=Crimson
  • Network accessline 56
    55,Spatial Clear,"Sans + Sans",Inter,Inter,"spatial, legible, glass, system, clean, neutral","Spatial computing, AR/VR, glassmorphism interfaces","https://fonts.google.com/share?selection.family=Inter:wght@300;400;500;600","@import url('htt
  • Network accessline 57
    56,Kinetic Motion,"Display + Mono",Syncopate,Space Mono,"kinetic, motion, futuristic, speed, wide, tech","Music festivals, automotive, high-energy brands","https://fonts.google.com/share?selection.family=Space+Mono:wght@400;700|Syncopate:wg
  • Network accessline 58
    57,Gen Z Brutal,"Display + Sans",Anton,Epilogue,"brutal, loud, shouty, meme, internet, bold","Gen Z marketing, streetwear, viral campaigns","https://fonts.google.com/share?selection.family=Anton|Epilogue:wght@400;500;600;700","@import url('
  • Network accessline 59
    58,Minimalist Monochrome Editorial,"Serif + Serif + Mono (Triple Stack)",Playfair Display,Source Serif 4,"monochrome, editorial, austere, typographic, pocket manifesto, luxury, high contrast, brutalist mobile","Luxury fashion mobile apps, e
  • Network accessline 60
    59,Modern Dark Cinema (Inter System),"Sans + Mono",Inter,Inter,"dark, cinematic, technical, precision, clean, premium, developer, professional, high-end utility","Developer tools, fintech/trading, AI dashboards, streaming platforms, high-en
  • Network accessline 61
    60,SaaS Mobile Boutique (Calistoga + Inter),"Display Serif + Sans + Mono",Calistoga,Inter,"saas, boutique, electric, warm, editorial, bold, premium, fintech, business, dual font, human warmth","B2B SaaS mobile, fintech apps, analytics dashb
  • Network accessline 62
    61,Terminal CLI Monospace,"Mono + Mono (Single Family)",JetBrains Mono,JetBrains Mono,"terminal, cli, hacker, monospace, matrix, developer, retro-future, command line, precision, OLED","Developer tools, Web3/blockchain apps, hacker aestheti
  • Network accessline 63
    62,Kinetic Brutalism (Space Grotesk),"Geometric Sans (Single Dominant)",Space Grotesk,Space Grotesk,"kinetic, brutalist, aggressive, uppercase, oversized, display, motion, street, bold, high-energy, zine","Music/culture apps, sports platfor
  • Network accessline 64
    63,Flat Design Mobile (System Bold),"Sans + Sans",Inter,Inter,"flat, clean, system, bold, geometric, cross-platform, icon, poster, minimal, functional, responsive","Cross-platform apps, dashboards, system UI, onboarding, marketing pages, in
  • Network accessline 65
    64,Material You MD3 (Roboto System),"Sans (System Default)",Roboto,Roboto,"material design 3, md3, android, google, tonal, friendly, rounded, accessible, adaptive","Android apps, cross-platform tools, productivity software, data-heavy B2B d
  • Network accessline 66
    65,Neo Brutalism Mobile (Space Grotesk Heavy),"Geometric Sans (Bold-Only)",Space Grotesk,Space Grotesk,"neo brutalism, pop art, loud, bold, heavy, stickers, mechanical, high contrast, cream, gen-z","Creative tools, Gen-Z marketing, e-commer
  • Network accessline 67
    66,Bold Typography Mobile (Inter-Tight Poster),"Sans + Serif (Display) + Mono","Inter","Playfair Display","bold typography, editorial, poster, near-black, vermillion, luxury, type-as-hero, manifesto, high-contrast","Creative brand flagships
  • Network accessline 68
    67,Academia Mobile (Cormorant + Crimson + Cinzel),"Serif + Book Serif + Engraved (Triple Stack)","Cormorant Garamond","Crimson Pro","academia, library, mahogany, parchment, brass, scholarly, prestige, antique, victorian, leather","Knowledge
  • Network accessline 69
    68,Cyberpunk Mobile (Orbitron + JetBrains Mono),"Tech Display + Mono","Orbitron","JetBrains Mono","cyberpunk, neon, glitch, hud, sci-fi, dark, matrix green, magenta, chamfered, tactical","Gaming companion apps, fintech/crypto, data visualiz
  • Network accessline 70
    69,Web3 Bitcoin DeFi (Space Grotesk + Inter + Mono),"Geometric Sans + Sans + Mono (Triple)","Space Grotesk","Inter","web3, bitcoin, defi, digital gold, fintech, crypto, trustless, luminescent, precision, dark","DeFi protocols and wallets, N
  • Network accessline 71
    70,Claymorphism Mobile (Nunito + DM Sans),"Display Rounded + Geometric Sans","Nunito","DM Sans","claymorphism, clay, rounded, playful, candy, bubbly, soft, 3d, children, education, tactile, spring, nunito, dm sans","Children education apps,
  • Network accessline 72
    71,Enterprise SaaS Mobile (Plus Jakarta Sans),"Geometric Sans (Single Family)","Plus Jakarta Sans","Plus Jakarta Sans","enterprise, saas, b2b, professional, indigo, modern, approachable, legible, ios dynamic type, android scaling","B2B SaaS
  • Network accessline 73
    72,Sketch Hand-Drawn Mobile (Kalam + Patrick Hand),"Handwritten + Handwritten (Dual)","Kalam","Patrick Hand","sketch, hand-drawn, handwriting, human, imperfect, organic, paper, kalam, patrick hand, education, journal, creative","Journaling 
  • Network accessline 74
    73,Neumorphism Mobile (Plus Jakarta Sans + System),"Geometric Sans (System Fallback)","Plus Jakarta Sans","Plus Jakarta Sans","neumorphism, soft ui, monochromatic, cool grey, minimal, physical, depth, ceramic, system font, utility","Smart h

skills/forge-design/scripts/core.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design/scripts/design_system.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-design/scripts/search.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-doc-policy/scripts/.gitkeep

  • Executable scriptline 1
    Executable file

skills/forge-doc-policy/scripts/init-project.sh

  • Executable scriptline 1
    #!/bin/bash

skills/forge-doc-release/SKILL.md

skills/forge-doc-release/references/release-details.md

  • Dangerous shell operationline 251
    rm -f /tmp/doc-release-pr-body-$$.md

skills/forge-eng/references/tdd-guide.md

  • Network accessline 88
    1. 实现功能 2. 定义验证命令(必须在任务模板中明确写出):    - API: curl -s http://localhost:3456/api/xxx | jq .
  • Network accessline 89
    2. 定义验证命令(必须在任务模板中明确写出):    - API: curl -s http://localhost:3456/api/xxx | jq .    - 页面: 用 Playwright / browser-use 截图验证
  • Network accessline 90
    - API: curl -s http://localhost:3456/api/xxx | jq .

skills/forge-eng/references/verification-checklist.md

  • Network accessline 39
    | "Bug 已修复" | 复现步骤验证:通过 | 改了代码 / "应该修好了" | | "回归测试通过" | 红绿循环验证 | 测试只通过了一次 | | "API 正常" | curl 返回期望结果 | 代码看起来对 |
  • Network accessline 40
    | "回归测试通过" | 红绿循环验证 | 测试只通过了一次 | | "API 正常" | curl 返回期望结果 | 代码看起来对 | | "页面正确" | 截图/浏览器验证 | DOM 结构看起来对 |
  • Network accessline 41
    | "API 正常" | curl 返回期望结果 | 代码看起来对 |
  • Network accessline 79
    # GET 请求 curl -s -w "\nHTTP Status: %{http_code}\n" http://localhost:3456/api/xxx
  • Network accessline 80
    curl -s -w "\nHTTP Status: %{http_code}\n" http://localhost:3456/api/xxx
  • Network accessline 82
    # POST 请求 curl -s -X POST http://localhost:3456/api/xxx \
  • Network accessline 83
    curl -s -X POST http://localhost:3456/api/xxx \
  • Network accessline 93
    browser = p.chromium.launch(headless=True)     page = browser.new_page()     page.goto('http://localhost:3456')
  • Network accessline 94
    page = browser.new_page()     page.goto('http://localhost:3456')     page.wait_for_load_state('networkidle')
  • Network accessline 95
    page.goto('http://localhost:3456')
  • Network accessline 158
    Task-3 of Wave-2 验证:npm test → 47 passed, 0 failed; curl /api/search?q=测试 → 200 OK, 3 results
  • Network accessline 159
    验证:npm test → 47 passed, 0 failed; curl /api/search?q=测试 → 200 OK, 3 results

skills/forge-eng/references/wave-execution.md

  • Network accessline 42
    **验证命令**: {可执行的验证命令:测试命令 / curl / 浏览器截图 / 脚本}
  • Network accessline 43
    {可执行的验证命令:测试命令 / curl / 浏览器截图 / 脚本}

skills/forge-feature-doc/README.md

  • Access to secretsline 53
    [Credential-related source omitted]

skills/forge-feature-doc/scripts/annotate.mjs

  • Executable scriptline 1
    Executable file

skills/forge-feature-doc/scripts/check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/forge-feature-doc/scripts/render-diagrams.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/forge-feature-doc/scripts/scaffold.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/forge-fupan/README.md

  • Access to secretsline 35
    [Credential-related source omitted]

skills/forge-fupan/SKILL.md

  • Access to secretsline 676
    [Credential-related source omitted]
  • Dangerous shell operationline 693
    rm -f "$_IMAGE_MARKER"
  • Access to secretsline 697
    [Credential-related source omitted]

skills/forge-fupan/parse_tokens.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/forge-qa/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 193
    else   for port in 3000 3456 4000 5173 8080 8081; do     curl -s -o /dev/null -w "%{http_code}" "http://localhost:$port" 2>/dev/null | grep -qE "200|301|302|304" && echo "  http://localhost:$port ✓(旧项目兜底探测)"
  • Network accessline 194
    for port in 3000 3456 4000 5173 8080 8081; do     curl -s -o /dev/null -w "%{http_code}" "http://localhost:$port" 2>/dev/null | grep -qE "200|301|302|304" && echo "  http://localhost:$port ✓(旧项目兜底探测)"   done
  • Network accessline 195
    curl -s -o /dev/null -w "%{http_code}" "http://localhost:$port" 2>/dev/null | grep -qE "200|301|302|304" && echo "  http://localhost:$port ✓(旧项目兜底探测)"

skills/forge-qa/references/mode-a-execution.md

  • Network accessline 229
    "generated_at": "2026-03-28T10:00:00Z",     "scope": "full | diff-aware | regression",     "app_url": "http://localhost:8080",
  • Network accessline 230
    "scope": "full | diff-aware | regression",     "app_url": "http://localhost:8080",     "selector_strategy": "data-* + text + semantic"
  • Network accessline 231
    "app_url": "http://localhost:8080",

skills/forge-qa/references/mode-b-regression.md

  • Network accessline 38
    |---|---|---| | UI 交互 / 视觉 / 控制台 | browser-use:browser(Codex 可用时优先)或 Playwright | 需要真实浏览器和用户视角截图 | | API / 数据 / 业务逻辑 | curl / 代码单元测试 | 更快更直接 |
  • Network accessline 39
    | UI 交互 / 视觉 / 控制台 | browser-use:browser(Codex 可用时优先)或 Playwright | 需要真实浏览器和用户视角截图 | | API / 数据 / 业务逻辑 | curl / 代码单元测试 | 更快更直接 | | 响应式 / 可访问性 | Playwright | 专业断言库 |
  • Network accessline 40
    | API / 数据 / 业务逻辑 | curl / 代码单元测试 | 更快更直接 |

skills/forge-qa/references/test-dimensions.md

  • Network accessline 113
    // ── 执行 ── const BASE = 'http://127.0.0.1:8080';
  • Network accessline 114
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 176
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 178
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 325
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 327
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 480
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 482
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 684
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 686
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 863
    const browser = await chromium.launch(); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 864
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1024
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1026
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1042
    // 注入 axe-core(CDN 或本地文件) await page.addScriptTag({   url: 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.9.1/axe.min.js',
  • Network accessline 1043
    await page.addScriptTag({   url: 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.9.1/axe.min.js', });
  • Network accessline 1044
    url: 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.9.1/axe.min.js',
  • Network accessline 1250
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1252
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1446
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1448
    const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1681
    const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1440, height: 900 } }); const BASE = 'http://127.0.0.1:8080';
  • Network accessline 1683
    const BASE = 'http://127.0.0.1:8080';

skills/forge-qa/scripts/qa-runner.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 14
    *  *   B) 直接执行 test-spec.json:  *      node qa-runner.mjs --spec=test-spec.json --url=http://localhost:8080
  • Network accessline 15
    *   B) 直接执行 test-spec.json:  *      node qa-runner.mjs --spec=test-spec.json --url=http://localhost:8080  *
  • Network accessline 16
    *      node qa-runner.mjs --spec=test-spec.json --url=http://localhost:8080
  • Network accessline 17
    *  *   C) 执行内联测试脚本:  *      node qa-runner.mjs --run=my-test.mjs --url=http://localhost:8080
  • Network accessline 18
    *   C) 执行内联测试脚本:  *      node qa-runner.mjs --run=my-test.mjs --url=http://localhost:8080  */
  • Network accessline 19
    *      node qa-runner.mjs --run=my-test.mjs --url=http://localhost:8080
  • Network accessline 377
    const specPath = getArg('spec');   const runPath = getArg('run');   const url = getArg('url') || 'http://localhost:8080';
  • Network accessline 378
    const runPath = getArg('run');   const url = getArg('url') || 'http://localhost:8080';   const outputPath = getArg('output');
  • Network accessline 379
    const url = getArg('url') || 'http://localhost:8080';
  • Network accessline 386
    用法:   node qa-runner.mjs --spec=test-spec.json --url=http://localhost:8080
  • Network accessline 387
    node qa-runner.mjs --spec=test-spec.json --url=http://localhost:8080
  • Network accessline 388
    node qa-runner.mjs --run=my-test.mjs --url=http://localhost:8080
  • Network accessline 391
    --spec=<path>    test-spec.json 路径(结构化测试规格)   --run=<path>     自定义测试脚本路径(必须 export default async function)   --url=<url>      应用 URL(默认 http://localhost:8080)
  • Network accessline 392
    --run=<path>     自定义测试脚本路径(必须 export default async function)   --url=<url>      应用 URL(默认 http://localhost:8080)   --output=<path>  结果输出路径(默认 qa_screenshots/test-results.json)
  • Network accessline 393
    --url=<url>      应用 URL(默认 http://localhost:8080)

skills/forge-review/SKILL.md

skills/forge-ship/SKILL.md

skills/forge-status/SKILL.md

tools/fupan-workbench/__init__.py

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/frontend/package-lock.json

  • Network accessline 19
    "node_modules/@babel/code-frame": {       "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.0.tgz",
  • Network accessline 20
    "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.0.tgz",       "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
  • Network accessline 21
    "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.0.tgz",
  • Network accessline 32
    "node_modules/@babel/compat-data": {       "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.0.tgz",
  • Network accessline 33
    "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.0.tgz",       "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
  • Network accessline 34
    "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.29.0.tgz",
  • Network accessline 40
    "node_modules/@babel/core": {       "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.29.0.tgz",
  • Network accessline 41
    "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.29.0.tgz",       "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
  • Network accessline 42
    "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.29.0.tgz",
  • Network accessline 64
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/babel"
  • Network accessline 65
    "type": "opencollective",         "url": "https://opencollective.com/babel"       }
  • Network accessline 66
    "url": "https://opencollective.com/babel"
  • Network accessline 69
    "node_modules/@babel/generator": {       "version": "7.29.1",       "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.1.tgz",
  • Network accessline 70
    "version": "7.29.1",       "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.1.tgz",       "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
  • Network accessline 71
    "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.29.1.tgz",
  • Network accessline 84
    "node_modules/@babel/helper-compilation-targets": {       "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
  • Network accessline 85
    "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",       "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua
  • Network accessline 86
    "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
  • Network accessline 99
    "node_modules/@babel/helper-globals": {       "version": "7.28.0",       "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
  • Network accessline 100
    "version": "7.28.0",       "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz",       "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
  • Network accessline 101
    "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
  • Network accessline 107
    "node_modules/@babel/helper-module-imports": {       "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
  • Network accessline 108
    "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",       "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubf
  • Network accessline 109
    "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
  • Network accessline 119
    "node_modules/@babel/helper-module-transforms": {       "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
  • Network accessline 120
    "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",       "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzU
  • Network accessline 121
    "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
  • Network accessline 135
    "node_modules/@babel/helper-plugin-utils": {       "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
  • Network accessline 136
    "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",       "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7
  • Network accessline 137
    "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
  • Network accessline 143
    "node_modules/@babel/helper-string-parser": {       "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
  • Network accessline 144
    "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",       "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWP
  • Network accessline 145
    "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
  • Network accessline 151
    "node_modules/@babel/helper-validator-identifier": {       "version": "7.28.5",       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
  • Network accessline 152
    "version": "7.28.5",       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",       "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItj
  • Network accessline 153
    "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
  • Network accessline 159
    "node_modules/@babel/helper-validator-option": {       "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
  • Network accessline 160
    "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",       "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9M
  • Network accessline 161
    "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
  • Network accessline 167
    "node_modules/@babel/helpers": {       "version": "7.29.2",       "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.2.tgz",
  • Network accessline 168
    "version": "7.29.2",       "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.2.tgz",       "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
  • Network accessline 169
    "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.29.2.tgz",
  • Network accessline 179
    "node_modules/@babel/parser": {       "version": "7.29.2",       "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.2.tgz",
  • Network accessline 180
    "version": "7.29.2",       "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.2.tgz",       "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
  • Network accessline 181
    "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.2.tgz",
  • Network accessline 193
    "node_modules/@babel/plugin-transform-react-jsx-self": {       "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
  • Network accessline 194
    "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",       "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPS
  • Network accessline 195
    "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
  • Network accessline 207
    "node_modules/@babel/plugin-transform-react-jsx-source": {       "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
  • Network accessline 208
    "version": "7.27.1",       "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",       "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsS
  • Network accessline 209
    "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
  • Network accessline 221
    "node_modules/@babel/template": {       "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.28.6.tgz",
  • Network accessline 222
    "version": "7.28.6",       "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.28.6.tgz",       "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
  • Network accessline 223
    "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.28.6.tgz",
  • Network accessline 234
    "node_modules/@babel/traverse": {       "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.0.tgz",
  • Network accessline 235
    "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.0.tgz",       "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
  • Network accessline 236
    "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.29.0.tgz",
  • Network accessline 251
    "node_modules/@babel/types": {       "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.0.tgz",
  • Network accessline 252
    "version": "7.29.0",       "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.0.tgz",       "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
  • Network accessline 253
    "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.0.tgz",
  • Network accessline 263
    "node_modules/@esbuild/aix-ppc64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
  • Network accessline 264
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",       "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
  • Network accessline 265
    "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
  • Network accessline 278
    "node_modules/@esbuild/android-arm": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
  • Network accessline 279
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz",       "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
  • Network accessline 280
    "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
  • Network accessline 293
    "node_modules/@esbuild/android-arm64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
  • Network accessline 294
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",       "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
  • Network accessline 295
    "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
  • Network accessline 308
    "node_modules/@esbuild/android-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
  • Network accessline 309
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz",       "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
  • Network accessline 310
    "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
  • Network accessline 323
    "node_modules/@esbuild/darwin-arm64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
  • Network accessline 324
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",       "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
  • Network accessline 325
    "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
  • Network accessline 338
    "node_modules/@esbuild/darwin-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
  • Network accessline 339
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",       "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
  • Network accessline 340
    "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
  • Network accessline 353
    "node_modules/@esbuild/freebsd-arm64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
  • Network accessline 354
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",       "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
  • Network accessline 355
    "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
  • Network accessline 368
    "node_modules/@esbuild/freebsd-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
  • Network accessline 369
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",       "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
  • Network accessline 370
    "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
  • Network accessline 383
    "node_modules/@esbuild/linux-arm": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
  • Network accessline 384
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",       "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
  • Network accessline 385
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
  • Network accessline 398
    "node_modules/@esbuild/linux-arm64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
  • Network accessline 399
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",       "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
  • Network accessline 400
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
  • Network accessline 413
    "node_modules/@esbuild/linux-ia32": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
  • Network accessline 414
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",       "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
  • Network accessline 415
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
  • Network accessline 428
    "node_modules/@esbuild/linux-loong64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
  • Network accessline 429
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",       "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
  • Network accessline 430
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
  • Network accessline 443
    "node_modules/@esbuild/linux-mips64el": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
  • Network accessline 444
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",       "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
  • Network accessline 445
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
  • Network accessline 458
    "node_modules/@esbuild/linux-ppc64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
  • Network accessline 459
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",       "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
  • Network accessline 460
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
  • Network accessline 473
    "node_modules/@esbuild/linux-riscv64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
  • Network accessline 474
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",       "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
  • Network accessline 475
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
  • Network accessline 488
    "node_modules/@esbuild/linux-s390x": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
  • Network accessline 489
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",       "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
  • Network accessline 490
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
  • Network accessline 503
    "node_modules/@esbuild/linux-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
  • Network accessline 504
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",       "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
  • Network accessline 505
    "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
  • Network accessline 518
    "node_modules/@esbuild/netbsd-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
  • Network accessline 519
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",       "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
  • Network accessline 520
    "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
  • Network accessline 533
    "node_modules/@esbuild/openbsd-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
  • Network accessline 534
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",       "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
  • Network accessline 535
    "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
  • Network accessline 548
    "node_modules/@esbuild/sunos-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
  • Network accessline 549
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",       "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
  • Network accessline 550
    "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
  • Network accessline 563
    "node_modules/@esbuild/win32-arm64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
  • Network accessline 564
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",       "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
  • Network accessline 565
    "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
  • Network accessline 578
    "node_modules/@esbuild/win32-ia32": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
  • Network accessline 579
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",       "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
  • Network accessline 580
    "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
  • Network accessline 593
    "node_modules/@esbuild/win32-x64": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
  • Network accessline 594
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",       "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
  • Network accessline 595
    "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
  • Network accessline 608
    "node_modules/@jridgewell/gen-mapping": {       "version": "0.3.13",       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
  • Network accessline 609
    "version": "0.3.13",       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",       "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
  • Network accessline 610
    "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
  • Network accessline 617
    "node_modules/@jridgewell/remapping": {       "version": "2.3.5",       "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz",
  • Network accessline 618
    "version": "2.3.5",       "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz",       "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
  • Network accessline 619
    "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz",
  • Network accessline 626
    "node_modules/@jridgewell/resolve-uri": {       "version": "3.1.2",       "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
  • Network accessline 627
    "version": "3.1.2",       "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",       "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
  • Network accessline 628
    "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
  • Network accessline 634
    "node_modules/@jridgewell/sourcemap-codec": {       "version": "1.5.5",       "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
  • Network accessline 635
    "version": "1.5.5",       "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",       "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0O
  • Network accessline 636
    "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
  • Network accessline 639
    "node_modules/@jridgewell/trace-mapping": {       "version": "0.3.31",       "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
  • Network accessline 640
    "version": "0.3.31",       "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",       "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=
  • Network accessline 641
    "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
  • Network accessline 648
    "node_modules/@rollup/rollup-android-arm-eabi": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",
  • Network accessline 649
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",       "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLI
  • Network accessline 650
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",
  • Network accessline 660
    "node_modules/@rollup/rollup-android-arm64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",
  • Network accessline 661
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",       "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+ia
  • Network accessline 662
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",
  • Network accessline 672
    "node_modules/@rollup/rollup-darwin-arm64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",
  • Network accessline 673
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",       "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumc
  • Network accessline 674
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",
  • Network accessline 684
    "node_modules/@rollup/rollup-darwin-x64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",
  • Network accessline 685
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",       "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR734
  • Network accessline 686
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",
  • Network accessline 696
    "node_modules/@rollup/rollup-freebsd-arm64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",
  • Network accessline 697
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",       "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8U
  • Network accessline 698
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",
  • Network accessline 708
    "node_modules/@rollup/rollup-freebsd-x64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",
  • Network accessline 709
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",       "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az
  • Network accessline 710
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",
  • Network accessline 720
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",
  • Network accessline 721
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",       "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qO
  • Network accessline 722
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",
  • Network accessline 732
    "node_modules/@rollup/rollup-linux-arm-musleabihf": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",
  • Network accessline 733
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",       "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcA
  • Network accessline 734
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",
  • Network accessline 744
    "node_modules/@rollup/rollup-linux-arm64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",
  • Network accessline 745
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",       "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZ
  • Network accessline 746
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",
  • Network accessline 756
    "node_modules/@rollup/rollup-linux-arm64-musl": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",
  • Network accessline 757
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",       "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9K
  • Network accessline 758
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",
  • Network accessline 768
    "node_modules/@rollup/rollup-linux-loong64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",
  • Network accessline 769
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",       "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3
  • Network accessline 770
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",
  • Network accessline 780
    "node_modules/@rollup/rollup-linux-loong64-musl": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",
  • Network accessline 781
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",       "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZ
  • Network accessline 782
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",
  • Network accessline 792
    "node_modules/@rollup/rollup-linux-ppc64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",
  • Network accessline 793
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",       "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/
  • Network accessline 794
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",
  • Network accessline 804
    "node_modules/@rollup/rollup-linux-ppc64-musl": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",
  • Network accessline 805
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",       "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6D
  • Network accessline 806
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",
  • Network accessline 816
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",
  • Network accessline 817
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",       "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5
  • Network accessline 818
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",
  • Network accessline 828
    "node_modules/@rollup/rollup-linux-riscv64-musl": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",
  • Network accessline 829
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",       "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdH
  • Network accessline 830
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",
  • Network accessline 840
    "node_modules/@rollup/rollup-linux-s390x-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",
  • Network accessline 841
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",       "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevX
  • Network accessline 842
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",
  • Network accessline 852
    "node_modules/@rollup/rollup-linux-x64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",
  • Network accessline 853
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",       "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE9
  • Network accessline 854
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",
  • Network accessline 864
    "node_modules/@rollup/rollup-linux-x64-musl": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",
  • Network accessline 865
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",       "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7A
  • Network accessline 866
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",
  • Network accessline 876
    "node_modules/@rollup/rollup-openbsd-x64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",
  • Network accessline 877
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",       "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2h
  • Network accessline 878
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",
  • Network accessline 888
    "node_modules/@rollup/rollup-openharmony-arm64": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",
  • Network accessline 889
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",       "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7X
  • Network accessline 890
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",
  • Network accessline 900
    "node_modules/@rollup/rollup-win32-arm64-msvc": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",
  • Network accessline 901
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",       "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7g
  • Network accessline 902
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",
  • Network accessline 912
    "node_modules/@rollup/rollup-win32-ia32-msvc": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",
  • Network accessline 913
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",       "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7
  • Network accessline 914
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",
  • Network accessline 924
    "node_modules/@rollup/rollup-win32-x64-gnu": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",
  • Network accessline 925
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",       "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYP
  • Network accessline 926
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",
  • Network accessline 936
    "node_modules/@rollup/rollup-win32-x64-msvc": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",
  • Network accessline 937
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",       "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdm
  • Network accessline 938
    "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",
  • Network accessline 948
    "node_modules/@types/babel__core": {       "version": "7.20.5",       "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
  • Network accessline 949
    "version": "7.20.5",       "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",       "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
  • Network accessline 950
    "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
  • Network accessline 960
    "node_modules/@types/babel__generator": {       "version": "7.27.0",       "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz",
  • Network accessline 961
    "version": "7.27.0",       "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz",       "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg
  • Network accessline 962
    "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz",
  • Network accessline 968
    "node_modules/@types/babel__template": {       "version": "7.4.4",       "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",
  • Network accessline 969
    "version": "7.4.4",       "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",       "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
  • Network accessline 970
    "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",
  • Network accessline 977
    "node_modules/@types/babel__traverse": {       "version": "7.28.0",       "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
  • Network accessline 978
    "version": "7.28.0",       "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",       "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
  • Network accessline 979
    "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
  • Network accessline 985
    "node_modules/@types/estree": {       "version": "1.0.8",       "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
  • Network accessline 986
    "version": "1.0.8",       "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",       "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="
  • Network accessline 987
    "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
  • Network accessline 990
    "node_modules/@vitejs/plugin-react": {       "version": "4.3.4",       "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz",
  • Network accessline 991
    "version": "4.3.4",       "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz",       "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==",
  • Network accessline 992
    "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz",
  • Network accessline 1008
    "node_modules/baseline-browser-mapping": {       "version": "2.10.21",       "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.21.tgz",
  • Network accessline 1009
    "version": "2.10.21",       "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.21.tgz",       "integrity": "sha512-Q+rUQ7Uz8AHM7DEaNdwvfFCTq7a43lNTzuS94eiWqwyxfV/wJv+oUivef51T91mmRY4d4A1u9rc
  • Network accessline 1010
    "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.21.tgz",
  • Network accessline 1019
    "node_modules/browserslist": {       "version": "4.28.2",       "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz",
  • Network accessline 1020
    "version": "4.28.2",       "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz",       "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
  • Network accessline 1021
    "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.2.tgz",
  • Network accessline 1024
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 1025
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 1026
    "url": "https://opencollective.com/browserslist"
  • Network accessline 1028
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 1029
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"         },
  • Network accessline 1030
    "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 1032
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 1033
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 1034
    "url": "https://github.com/sponsors/ai"
  • Network accessline 1051
    "node_modules/caniuse-lite": {       "version": "1.0.30001790",       "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001790.tgz",
  • Network accessline 1052
    "version": "1.0.30001790",       "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001790.tgz",       "integrity": "sha512-bOoxfJPyYo+ds6W0YfptaCWbFnJYjh2Y1Eow5lRv+vI2u8ganPZqNm1JwNh0t2ELQCqIWg4B3dWEusgAmsoyOw=="
  • Network accessline 1053
    "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001790.tgz",
  • Network accessline 1056
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 1057
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 1058
    "url": "https://opencollective.com/browserslist"
  • Network accessline 1060
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  • Network accessline 1061
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/caniuse-lite"         },
  • Network accessline 1062
    "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  • Network accessline 1064
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 1065
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 1066
    "url": "https://github.com/sponsors/ai"
  • Network accessline 1070
    "node_modules/convert-source-map": {       "version": "2.0.0",       "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
  • Network accessline 1071
    "version": "2.0.0",       "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",       "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
  • Network accessline 1072
    "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
  • Network accessline 1075
    "node_modules/debug": {       "version": "4.4.3",       "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
  • Network accessline 1076
    "version": "4.4.3",       "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",       "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  • Network accessline 1077
    "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
  • Network accessline 1091
    "node_modules/electron-to-chromium": {       "version": "1.5.344",       "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz",
  • Network accessline 1092
    "version": "1.5.344",       "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz",       "integrity": "sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt
  • Network accessline 1093
    "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz",
  • Network accessline 1096
    "node_modules/esbuild": {       "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz",
  • Network accessline 1097
    "version": "0.21.5",       "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz",       "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
  • Network accessline 1098
    "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz",
  • Network accessline 1133
    "node_modules/escalade": {       "version": "3.2.0",       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 1134
    "version": "3.2.0",       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",       "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
  • Network accessline 1135
    "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 1141
    "node_modules/fsevents": {       "version": "2.3.3",       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
  • Network accessline 1142
    "version": "2.3.3",       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",       "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
  • Network accessline 1143
    "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
  • Network accessline 1154
    "node_modules/gensync": {       "version": "1.0.0-beta.2",       "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
  • Network accessline 1155
    "version": "1.0.0-beta.2",       "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",       "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
  • Network accessline 1156
    "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
  • Network accessline 1162
    "node_modules/js-tokens": {       "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
  • Network accessline 1163
    "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",       "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
  • Network accessline 1164
    "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
  • Network accessline 1167
    "node_modules/jsesc": {       "version": "3.1.0",       "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz",
  • Network accessline 1168
    "version": "3.1.0",       "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz",       "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
  • Network accessline 1169
    "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz",
  • Network accessline 1178
    "node_modules/json5": {       "version": "2.2.3",       "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
  • Network accessline 1179
    "version": "2.2.3",       "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",       "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
  • Network accessline 1180
    "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
  • Network accessline 1189
    "node_modules/loose-envify": {       "version": "1.4.0",       "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
  • Network accessline 1190
    "version": "1.4.0",       "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",       "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
  • Network accessline 1191
    "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
  • Network accessline 1200
    "node_modules/lru-cache": {       "version": "5.1.1",       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
  • Network accessline 1201
    "version": "5.1.1",       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",       "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
  • Network accessline 1202
    "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
  • Network accessline 1208
    "node_modules/marked": {       "version": "12.0.2",       "resolved": "https://registry.npmmirror.com/marked/-/marked-12.0.2.tgz",
  • Network accessline 1209
    "version": "12.0.2",       "resolved": "https://registry.npmmirror.com/marked/-/marked-12.0.2.tgz",       "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
  • Network accessline 1210
    "resolved": "https://registry.npmmirror.com/marked/-/marked-12.0.2.tgz",
  • Network accessline 1219
    "node_modules/ms": {       "version": "2.1.3",       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
  • Network accessline 1220
    "version": "2.1.3",       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
  • Network accessline 1221
    "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
  • Network accessline 1224
    "node_modules/nanoid": {       "version": "3.3.11",       "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
  • Network accessline 1225
    "version": "3.3.11",       "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",       "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
  • Network accessline 1226
    "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
  • Network accessline 1229
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 1230
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 1231
    "url": "https://github.com/sponsors/ai"
  • Network accessline 1241
    "node_modules/node-releases": {       "version": "2.0.38",       "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.38.tgz",
  • Network accessline 1242
    "version": "2.0.38",       "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.38.tgz",       "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw=="
  • Network accessline 1243
    "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.38.tgz",
  • Network accessline 1246
    "node_modules/picocolors": {       "version": "1.1.1",       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
  • Network accessline 1247
    "version": "1.1.1",       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",       "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
  • Network accessline 1248
    "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
  • Network accessline 1251
    "node_modules/postcss": {       "version": "8.5.10",       "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.10.tgz",
  • Network accessline 1252
    "version": "8.5.10",       "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.10.tgz",       "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==",
  • Network accessline 1253
    "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.10.tgz",
  • Network accessline 1256
    {           "type": "opencollective",           "url": "https://opencollective.com/postcss/"
  • Network accessline 1257
    "type": "opencollective",           "url": "https://opencollective.com/postcss/"         },
  • Network accessline 1258
    "url": "https://opencollective.com/postcss/"
  • Network accessline 1260
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/postcss"
  • Network accessline 1261
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/postcss"         },
  • Network accessline 1262
    "url": "https://tidelift.com/funding/github/npm/postcss"
  • Network accessline 1264
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 1265
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 1266
    "url": "https://github.com/sponsors/ai"
  • Network accessline 1278
    "node_modules/react": {       "version": "18.2.0",       "resolved": "https://registry.npmmirror.com/react/-/react-18.2.0.tgz",
  • Network accessline 1279
    "version": "18.2.0",       "resolved": "https://registry.npmmirror.com/react/-/react-18.2.0.tgz",       "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
  • Network accessline 1280
    "resolved": "https://registry.npmmirror.com/react/-/react-18.2.0.tgz",
  • Network accessline 1289
    "node_modules/react-dom": {       "version": "18.2.0",       "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.2.0.tgz",
  • Network accessline 1290
    "version": "18.2.0",       "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.2.0.tgz",       "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
  • Network accessline 1291
    "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.2.0.tgz",
  • Network accessline 1301
    "node_modules/react-refresh": {       "version": "0.14.2",       "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.2.tgz",
  • Network accessline 1302
    "version": "0.14.2",       "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.2.tgz",       "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
  • Network accessline 1303
    "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.2.tgz",
  • Network accessline 1309
    "node_modules/rollup": {       "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.60.2.tgz",
  • Network accessline 1310
    "version": "4.60.2",       "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.60.2.tgz",       "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==",
  • Network accessline 1311
    "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.60.2.tgz",
  • Network accessline 1352
    "node_modules/scheduler": {       "version": "0.23.2",       "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz",
  • Network accessline 1353
    "version": "0.23.2",       "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz",       "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
  • Network accessline 1354
    "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz",
  • Network accessline 1360
    "node_modules/semver": {       "version": "6.3.1",       "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
  • Network accessline 1361
    "version": "6.3.1",       "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",       "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
  • Network accessline 1362
    "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
  • Network accessline 1368
    "node_modules/source-map-js": {       "version": "1.2.1",       "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
  • Network accessline 1369
    "version": "1.2.1",       "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",       "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
  • Network accessline 1370
    "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
  • Network accessline 1376
    "node_modules/update-browserslist-db": {       "version": "1.2.3",       "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  • Network accessline 1377
    "version": "1.2.3",       "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",       "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf2
  • Network accessline 1378
    "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  • Network accessline 1381
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 1382
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 1383
    "url": "https://opencollective.com/browserslist"
  • Network accessline 1385
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 1386
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"         },
  • Network accessline 1387
    "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 1389
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 1390
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 1391
    "url": "https://github.com/sponsors/ai"
  • Network accessline 1405
    "node_modules/vite": {       "version": "5.4.21",       "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz",
  • Network accessline 1406
    "version": "5.4.21",       "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz",       "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
  • Network accessline 1407
    "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz",
  • Network accessline 1419
    },       "funding": {         "url": "https://github.com/vitejs/vite?sponsor=1"
  • Network accessline 1420
    "funding": {         "url": "https://github.com/vitejs/vite?sponsor=1"       },
  • Network accessline 1421
    "url": "https://github.com/vitejs/vite?sponsor=1"
  • Network accessline 1463
    "node_modules/yallist": {       "version": "3.1.1",       "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
  • Network accessline 1464
    "version": "3.1.1",       "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
  • Network accessline 1465
    "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",

tools/fupan-workbench/frontend/package.json

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/frontend/src/main.jsx

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    async function api(path, options = {}) {   const response = await fetch(path, {
  • Network accessline 30
    const response = await fetch(path, {

tools/fupan-workbench/frontend/vite.config.js

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/launcher.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 65
    def request_json(url, timeout=1.5):     with urllib.request.urlopen(url, timeout=timeout) as response:
  • Network accessline 65
    def request_json(url, timeout=1.5):     with urllib.request.urlopen(url, timeout=timeout) as response:
  • Network accessline 66
    with urllib.request.urlopen(url, timeout=timeout) as response:
  • Network accessline 66
    with urllib.request.urlopen(url, timeout=timeout) as response:
  • Network accessline 77
    def find_free_port(start=DEFAULT_PORT, attempts=80):     for port in range(start, start + attempts):         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • Network accessline 77
    def find_free_port(start=DEFAULT_PORT, attempts=80):     for port in range(start, start + attempts):         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • Network accessline 78
    for port in range(start, start + attempts):         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)         try:
  • Network accessline 78
    for port in range(start, start + attempts):         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)         try:
  • Network accessline 79
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • Network accessline 79
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • Network accessline 140
    port = args.port or find_free_port()     url = "http://{}:{}".format(HOST, port)
  • Network accessline 140
    port = args.port or find_free_port()     url = "http://{}:{}".format(HOST, port)
  • Network accessline 141
    url = "http://{}:{}".format(HOST, port)
  • Network accessline 141
    url = "http://{}:{}".format(HOST, port)

tools/fupan-workbench/markdown_reader.py

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/review_index.py

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/server.py

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/static/assets/index-DffckMrb.js

  • Network accessline 1
    var cf=Object.defineProperty;var ho=e=>{throw TypeError(e)};var ff=(e,t,n)=>t in e?cf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var A=(e,t,n)=>ff(e,typeof t!="symbol"?t+"":t,n),df=(e,t,n)=>t.has(e)||ho("Cannot "+n);var
  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 9
    */var cr=Symbol.for("react.element"),pf=Symbol.for("react.portal"),hf=Symbol.for("react.fragment"),mf=Symbol.for("react.strict_mode"),gf=Symbol.for("react.profiler"),vf=Symbol.for("react.provider"),yf=Symbol.for("react.context"),kf=Symbol.f
  • Possible obfuscationline 25
    */(function(e){function t(_,z){var P=_.length;_.push(z);e:for(;0<P;){var Y=P-1>>>1,b=_[Y];if(0<l(b,z))_[Y]=z,_[P]=b,P=Y;else break e}}function n(_){return _.length===0?null:_[0]}function r(_){if(_.length===0)return null;var z=_[0],P=_.pop()
  • Network accessline 31
    * This source code is licensed under the MIT license found in the  * LICENSE file in the root directory of this source tree.  */var Xu=L,Se=If;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<argument
  • Network accessline 32
    * LICENSE file in the root directory of this source tree.  */var Xu=L,Se=If;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"
  • Network accessline 33
    */var Xu=L,Se=If;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full messa
  • Possible obfuscationline 33
    */var Xu=L,Se=If;function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full messa
  • Possible obfuscationline 34
    `+Kl+e}var Zl=!1;function Yl(e,t){if(!e||Zl)return"";Zl=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeo
  • Possible obfuscationline 37
    [Credential-related source omitted]
  • Possible obfuscationline 38
    `).replace(Gd,"")}function Pr(e,t,n){if(t=Ko(t),Ko(e)!==t&&n)throw Error(w(425))}function sl(){}var Fi=null,Ai=null;function Ui(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.d
  • Possible obfuscationline 39
    Error generating stack: `+i.message+ `+i.stack}return{value:e,source:t,stack:l,digest:null}}function pi(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Xi(e,t){try{console.error(t.value)}catch(n){setTimeout(function
  • Possible obfuscationline 40
    `+i.stack}return{value:e,source:t,stack:l,digest:null}}function pi(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Xi(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var dp=typeof WeakMap==
  • Possible obfuscationline 41
    `).map(l=>{const i=l.match(/^\s+/);if(i===null)return l;const[s]=i;return s.length>=r.length?l.slice(r.length):l}).join( `)}class Sl{constructor(t){A(this,"options");A(this,"rules");A(this,"lexer");this.options=t||Bt}space(t){const n=this.r
  • Possible obfuscationline 52
    `,t=t.substring(S.length+1),g=h.slice(v)}}i.loose||(c?i.loose=!0:/\n *\n *$/.test(o)&&(c=!0));let x=null,T;this.options.gfm&&(x=/^\[[ xX]\] /.exec(u),x&&(T=x[0]!=="[ ] ",u=u.replace(/^\[[ xX]\] +/,""))),i.items.push({type:"list_item",raw:o,
  • Possible obfuscationline 54
    `?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:r,tokens:this.lexer.inline(r)}}}text(t){const n=this.rules.block.text.exec(t);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(t){const n=this.ru
  • Possible obfuscationline 55
    ]`).replace("lheading",ef).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},nf=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,rh=/^(`+)([^`]|[^`
  • Possible obfuscationline 56
    `),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){const r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[]){this.options.pedantic?t=t.replace(/\t/g,"
  • Possible obfuscationline 65
    `+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=l.text):n.push(r);continue}if(t){const o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}retur
  • Possible obfuscationline 83
    `}strong(t){return`<strong>${t}</strong>`}em(t){return`<em>${t}</em>`}codespan(t){return`<code>${t}</code>`}br(){return"<br>"}del(t){return`<del>${t}</del>`}link(t,n,r){const l=Cu(t);if(l===null)return r;t=l;let i='<a href="'+t+'"';return n
  • Possible obfuscationline 84
    `+(s.tokens?this.parseInline(s.tokens):s.text);r+=n?this.renderer.paragraph(o):o;continue}default:{const s='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}parseIn
  • Network accessline 85
    Please report this to https://github.com/markedjs/marked.`,t){const l="<p>An error occurred:</p><pre>"+ke(r.message+"",!0)+"</pre>";return n?Promise.resolve(l):l}if(n)return Promise.reject(r);throw r}};const Dt=new yh;function O(e,t){return
  • Possible obfuscationline 85
    Please report this to https://github.com/markedjs/marked.`,t){const l="<p>An error occurred:</p><pre>"+ke(r.message+"",!0)+"</pre>";return n?Promise.resolve(l):l}if(n)return Promise.reject(r);throw r}};const Dt=new yh;function O(e,t){return
  • Possible obfuscationline 87
    `},n.image=(l,i,s)=>{if(!l)return"";const o=Ar(l),u=Ar(s||"复盘图片"),c=i?` title="${Ar(i)}"`:"";return`<button type="button" class="markdown-image-button" data-zoom-src="${o}" data-zoom-alt="${u}" aria-label="放大图片:${u}"><img src="${o}" alt="${

tools/fupan-workbench/task_store.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 24
    [Credential-related source omitted]

tools/fupan-workbench/tests/test_review_index.py

  • Executable scriptline 1
    Executable file

tools/fupan-workbench/tests/test_task_store.py

  • Executable scriptline 1
    Executable file

updatemd/claude-md/2026-04-18-R8-R9-R10-新增规则.md

  • Network accessline 28
    新增路由 → curl 验证。改 proxy → curl 验证。创建 worktree → diff .env。改后端 → 重启 + curl health。

updatemd/forge-bugfix/2026-04-18-v3.1-多Bug分诊+标签化日志+5Whys链+Bug分类+防护措施.md

  • Network accessline 28
    | 领域 | 关键发现 | 来源 | |------|----------|------| | Bug 分类学 | Boris Beizer 8 类 + Ishikawa 6M 映射到软件 | [124Tech](https://www.124tech.com/blog/ishikawa-software-engineering/)、[MeasuringU](https://measuringu.com/frameworks-for-classifying-ui-proble
  • Network accessline 29
    |------|----------|------| | Bug 分类学 | Boris Beizer 8 类 + Ishikawa 6M 映射到软件 | [124Tech](https://www.124tech.com/blog/ishikawa-software-engineering/)、[MeasuringU](https://measuringu.com/frameworks-for-classifying-ui-problems/) | | 多 Bug 分诊 |
  • Network accessline 30
    | Bug 分类学 | Boris Beizer 8 类 + Ishikawa 6M 映射到软件 | [124Tech](https://www.124tech.com/blog/ishikawa-software-engineering/)、[MeasuringU](https://measuringu.com/frameworks-for-classifying-ui-problems/) |
  • Network accessline 31
    | 多 Bug 分诊 | Atlassian/Plane.so 3 轴评估:用户影响 × 耦合度 × 信息依赖 | [Plane.so](https://plane.so/blog/bug-triage-process-how-to-run-it-and-what-to-prioritize) |
  • Network accessline 32
    | 根因沟通 | 5 Whys + Fishbone 组合,用「用户可见」术语而非代码术语 | [GoLeanSixSigma](https://goleansixsigma.com/fishbone-diagram/)、[Stanford IT](https://stanford.service-now.com/it_services?id=kb_article&number=KB00016564) |
  • Network accessline 33
    | 标签化调试 | `[DEBUG H1]` 假设标签日志,日志→假设可追溯 | [franzenzenhofer/debug-mode-skill](https://github.com/franzenzenhofer/debug-mode-skill)、[doraemonkeys/claude-code-debug-mode](https://github.com/doraemonkeys/claude-code-debug-mode) |
  • Network accessline 34
    | 回归预防 | 三层防护:回归测试 + lint 规则 + 架构改进 | [BairesDev](https://www.bairesdev.com/blog/classifying-prioritizing-bugs/)、[Zencoder](https://zencoder.ai/blog/software-engineering-best-practices) |
  • Network accessline 35
    | AI 调试 Agent | Claude Code / Cursor / Codex / Aider / franzenzenhofer 对比 | [eesel AI](https://www.eesel.ai/blog/debug-with-claude-code)、[SitePoint](https://www.sitepoint.com/debugging-ai-claude-code-vs-traditional-methods/) |

updatemd/forge-eng/2026-04-18-影响面扫描+环境验证.md

  • Network accessline 10
    从 54 篇复盘中发现两类高频 bug: 1. **下游依赖未追踪**(8+ 次):新增/修改字段后,消费该字段的下游组件未同步更新。典型案例:pill 过滤后计数不联动、前端覆盖后端排序、枚举新增未全局搜索。 2. **环境/运行时未验证**(7+ 次):worktree 缺 .env、Vite proxy 端口错、路由未 curl 验证、进程 CWD 不匹配。
  • Network accessline 12
    2. **环境/运行时未验证**(7+ 次):worktree 缺 .env、Vite proxy 端口错、路由未 curl 验证、进程 CWD 不匹配。
  • Network accessline 18
    Worktree 创建后、编码前,强制通过 4 项检查: - .env 完整性(diff 主仓库) - 后端启动(curl health)
  • Network accessline 19
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Network accessline 20
    - 后端启动(curl health)
  • Network accessline 21
    - 前端启动(curl localhost)
  • Network accessline 22
    - 代理配置(curl 通过代理的 API 路径)
  • Network accessline 34
    所有 Wave 完成后: - 新增 API 路由 curl 验证
  • Network accessline 35
    - 新增 API 路由 curl 验证

updatemd/forge-qa/2026-04-19-Mode-B单bug验收.md

  • Network accessline 42
    1. 读取 `review_doc` 清单的基本信息 + 验证项表格 2. 为每个验证项选择测试引擎(UI/视觉 → gstack 或 Playwright;API/逻辑 → curl 或单元测试;响应式/可访问性 → Playwright;静态属性 → Grep/Bash)
  • Network accessline 43
    2. 为每个验证项选择测试引擎(UI/视觉 → gstack 或 Playwright;API/逻辑 → curl 或单元测试;响应式/可访问性 → Playwright;静态属性 → Grep/Bash)

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 4 facts
Signal confidence: 362 facts

and 312 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.