Verify first-run onboarding from a clean environment: install, configure, doctor and a first run (LAUNCH-A)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github, python
- 領域
- devops, documentation, testing
調査の方向性
Start with AGENTS.md, docs/usage.md, docs/configuration.md, tests/AGENTS.md and the security-boundaries page from #257. Review README.md, docs/README.md, doctor.py, config.py, the existing CI install job from #256, and tests before defining the guide and smoke procedure. Done means the guide, tested starter configurations, clean-room steps and automated install smoke meet the listed acceptance criteria; a maintainer must perform the credentialed real run and post its friction log.
索引モデルが issue の本文から書いたものです。
説明
Artifact: implementation-ready issue (LAUNCH-A of the Public Alpha EPIC #255). This issue body is the authoritative copy; the working copy was drafted in the maintainer's local session scratchpad and is not kept elsewhere. Baseline: main at 711ff09, read on 2026-10-21 (UTC). Planning created this issue only: no code, branch or PR.
Parent: #255 · Priority: P0 · Gates: 1 (Fresh installation), 2 (First successful run) · Blocked by: #256, #257 [native] · Blocks: #261, #262 [native]
Summary
A developer who has never seen AutoForge can install it, configure it, diagnose their environment and run a first workflow on a repository of their own, using only the public documentation. This issue writes that path, fixes the first-run obstacles it finds, and proves it with a clean-room procedure.
Verified current state (711ff09)
- Install only works inside the AutoForge clone. README "Installation" is
uv sync(editable) anduv run autoforge --help(README.md:207-213); the Quick start says to runuv run autoforge …"from a checkout of the repository the issues belong to" (README.md:219-240). No document explains how to run AutoForge against another repository; no doc mentionsuv tool,pipxor--project. (#256 fixes packaging and chooses the install channel.) doctorfails on a fresh repository. Its "default branch requires checks" row (doctor.py:141) fails unless an active ruleset or classic branch protection requires a status check on the default branch, naming those insafety.required_checks(default["ci"], the aggregate check of AutoForge's own CI); an empty list does not make the row pass. The same key feeds the merge gate's required-check and check-definition verification (safety.verify_check_definition).doctoris Quick start step 1.- Defaults need two vendors.
analyze_execute/fixrun Claude Code with modelfable; every review round,replan_reexecuteandupdate_epicrun OpenCode withopenai/gpt-5.6-*(config.py:868-904). There is no starter configuration and noinitfor REMOTE mode (local initcreates a LOCAL feature file only).autoforge.yamlis gitignored;autoforge.example.yamlis long and has stale lines (:111-112,:228). runrequires--epicand--issue(autoforge run --help), and no document says what the EPIC or the issue must contain, or that both must be in the checkout's own repository (cross-repository runs are refused).- What exists:
doctor(with remedies for many rows),run --dry-run("no subprocess, no gh call, no state file"),status,resume, a detaileddocs/usage.mdanddocs/configuration.md, and LOCAL mode (docs/local-mode.md) which needs no GitHub at all.
Scope
- A getting-started guide (for example
docs/getting-started.md), written for a stranger, in order:- prerequisites by name and minimum version, linking #256's compatibility matrix (OS, Python,
uvor the chosen installer,git,ghand its authentication with the scopes from #257, Claude Code and OpenCode logins or keys, and who pays for model calls); - installing AutoForge with the channel #256 chose, so that
autoforgeruns from any directory; - preparing a throwaway repository you control (not a public repository where strangers can comment on the issue or PR the agent reads; see #257's security page): what the EPIC and the issue are for, what they should contain, a copy-paste example of each, the branch-protection / required-check expectation, and the
.gitignoreor.git/info/excludeentries for.autoforge/andautoforge.yamlso runtime state, logs and a local configuration are never committed; - a minimal working configuration (item 2);
autoforge doctor, with what each failing row means for a first run, and how to record the CLI versions it reports (Gates 1–3 record them);run --dry-run, then a realrun, thenstatus, then whatREADY_FOR_MERGEandBLOCKEDlook like and what to do next (a human merges);- the commonest first-run failures with their exact messages and fixes (item 4).
- prerequisites by name and minimum version, linking #256's compatibility matrix (OS, Python,
- Starter configuration(s) under an
examples/directory (or equivalent), each commented and loaded by a test so it cannot rot: (a) the default two-provider routing made explicit; (b) evaluate and, if it works, add a single-provider starter (for example Claude Code for every phase), stating plainly that its review is then not cross-vendor. Do not changedefault_config(). - The first-run
doctorexperience. Decide, with the maintainer, how a fresh repository passes or knowingly skips the "default branch requires checks" row (for example: the guide shows how to add a ruleset requiring a check; or the starter configuration setssafety.required_checksto the check the user's own CI produces; or the row explains that it matters only to the merge gate). Whatever is chosen must not weaken the merge gate:READY_FOR_MERGEandMERGEkeep their checks. - Common failure messages. This issue owns setup and first-run diagnostics: everything up to a run that exists (install, configuration,
doctor, credentials, the firstrun --dry-runand the start of the firstrun). Everything once a run exists (a state directory, a phase, a stop) is #260's; link it rather than repeating it. Collect the messages a first run actually hits (missing CLI, unauthenticatedghor agent CLI, unknown model, missing required check, cross-repository URL, dirty checkout, lock held, permission request per #258 if merged) and make sure each is in the guide with its fix. If a message is itself misleading, fix it in this issue when the change is small; otherwise file it as a sub-issue of #255. - The clean-room procedure (
docs/page or a section of the guide), reusable by Gates 1 and 2 at the release candidate: the environment to start from (fresh VM, container or user account; no prior AutoForge, uv cache, config or state), the exact steps, what to capture (redacted), and the friction log format. - An automated install smoke that runs the install-and-diagnose half of the procedure in a clean container or fresh virtual environment, offline and without credentials: install by the documented method,
autoforge --version,autoforge doctor(asserting the rows that need no credential),run --dry-runon a fixture. Extend the install job #256 adds to CI rather than adding a second one; if it does not fit theciaggregate's constraints, provide it as amaketarget documented indocs/development.md. - If the EPIC decides to promote LOCAL mode as a first-run path (condition C7), the guide includes it and the clean-room run covers it.
Acceptance criteria
- The getting-started guide exists and is linked from
README.mdanddocs/README.md. Every offline command in it (install,--version,--help,doctorrows that need no credential,run --dry-runon a fixture) was executed on the branch by the implementer, transcript in the PR, redacted; every credentialed command (authenticateddoctor, a realrun) was executed by the maintainer, with the result recorded on this issue. - Every starter configuration is loaded and validated by a test.
- On a fresh repository that follows the guide,
doctoreither passes or reports only rows the guide explicitly tells the user to expect, with no change to the merge gate's checks. - The clean-room procedure is documented, and one clean-room run following only the published docs on the PR head has been performed, through install,
doctor,run --dry-runand a first realrunon a throwaway repository toREADY_FOR_MERGE(orBLOCKEDwith the guide explaining why), with the OS, Python and CLI versions recorded. Its friction log is posted on this issue; every friction point is fixed or documented. - The automated install smoke passes.
-
make checkpasses.
Out of scope
- Packaging and the install channel itself (#256); the README redesign (#262); the full troubleshooting guide (#260); the public demo (#261).
- Changing provider defaults, adding an interactive
initwizard, or Windows support.
Executor and maintainer actions
Agent-implementable: the guide, starter configurations, the procedure, the automated smoke, small message fixes. Maintainer action: the first real run of the clean-room procedure needs real agent logins and model spend; the maintainer (or a volunteer) performs it and posts the friction log. Gate 2 at the release candidate additionally requires someone other than the maintainer.
Notes for the implementer
Read AGENTS.md, docs/usage.md, docs/configuration.md, tests/AGENTS.md and #257's security-boundaries page first. Tests never call a real agent or GitHub; the clean-room real run is the maintainer's. Do not commit autoforge.yaml (it is gitignored and maintainer-local).
- 主要言語
- Python
- スター
- 0
- フォーク
- 0
- 平均マージ
- 5時間 51分
- マージ済み PR(30日)
- 66
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
iceboundrock/AutoForge のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
iceboundrock/AutoForge#304 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
iceboundrock/AutoForge#329 ·
メンテナーはふだん 1 日以内に返信
-
bug
iceboundrock/AutoForge#328 ·
メンテナーはふだん 1 日以内に返信
-
A create whose text gh's JSON sanitizer rewrites is recorded as a conflict on the controller's own object (found on PR #314)対応中かも @iceboundrock が今日担当しました。 オープンbug
iceboundrock/AutoForge#327 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
iceboundrock/AutoForge#326 ·
メンテナーはふだん 1 日以内に返信
iceboundrock/AutoForge の issue をすべて見る
似ている issue
-
Project submission:オープン
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
slavakurilyak/awesome-ai-agents#845 ·
メンテナーはふだん 1 日以内に返信
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directory対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンdifficulty:2 enhancement good first issue
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
MakazhanAlpamys/Soup#2178 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
scverse/rapids-singlecell#854 ·
メンテナーはふだん 1 日以内に返信
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGL対応中かも @ninglinLiu が今日担当しました。 オープンarea:frontend backend:slang bug direction:input
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=False対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 13 日以内に返信