import-project · git:20261015.5050cc0 · 2026-10-15 · sha256 99f898be6d43863d

import-project git:20261015.5050cc0B

Immutable. This exact content never changes and is served at /api/v1/blob/99f898be6d43863d.

---
description: Bring an existing project into projects/ — clone through scripts/forge-clone.py, which reports the commit identity git resolves
argument-hint: "<git-url>"
disable-model-invocation: true
---

Bring the project at `$0` into the forge (POS.1060). Git is done by
`scripts/forge-clone.py` only (CLAUDE.md, Persistence).

1. Require the URL. The target directory is
   `projects/<repository name>` — the name falls out of the URL (no
   slug parameter); if the directory already exists, stop and report.
2. On the principal's word run `python scripts/forge-clone.py <url>`. The
   commit identity is git's, resolved per host from his own
   configuration (CLAUDE.md, Persistence); the script sets none and
   reports the one the clone resolves.
3. Relay the script's facts: the last commit, the origin, the
   identity git resolves, and whether the project carries a ledger
   with a `kind:` header (its absence: `templates/ledger.md`, header).
   When git resolves no identity, say in plain words what that means
   and what to do: git has no name and e-mail to sign commits on this
   host — the login that cloned the repository is a different thing —
   and `forge-save` commits nothing until git resolves one. The usual
   causes: no per-host rule in the user's git configuration, or a rule
   whose identity file git cannot find from this place (a `~` path, or
   a file beside a global file, under a HOME that differs by place).
   The two ways out, both the user's and outside the engine: the
   identity step of `/setup` with absolute paths, or a local identity
   in the repository (`git -C projects/<name> config user.name` and
   `user.email`). The forge writes none.
4. Finish by recommending `/forge <slug>` as the first act of work:
   the engine does not track the project and cannot guess it, so the
   project is selected by naming it.

Nothing is written into the imported project by this command.