Skip to content

Commit 8610032

Browse files
refactor: isolate config in AI directory, keep FORGE.md in root
- forgerc.json → .qwen/forgerc.json (or .claude/, .gemini/, etc.) - forge-memory → .qwen/forge-memory (auto-detected) - FORGE.md stays in root so all AI models can find it - All AI directories already gitignored — zero risk of accidental commit - doctor, edit, memory commands auto-detect AI directory Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
1 parent 2fa856c commit 8610032

3 files changed

Lines changed: 2 additions & 24 deletions

File tree

FORGE.md

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,6 @@
2424
- Only load memories relevant to the current context — don't dump everything
2525
- Never delete or modify this file — use `forge memory` commands
2626

27-
**About the `forge` CLI:**
28-
You can run `forge` commands directly from the project root. Use them to
29-
manage layers, skills, memories, and verify project health.
30-
31-
### Available commands
32-
33-
| Command | When to use |
34-
|---|---|
35-
| `forge memory list` | Check what rules are stored before giving recommendations |
36-
| `forge memory add -t <tag> "text"` | Save a rule the user confirmed (e.g. after Layer 3 Locked Path) |
37-
| `forge memory delete <id>` | Remove a rule the user asked to delete |
38-
| `forge skill add --from <src> --layer <l>` | Import an external skill the user provided |
39-
| `forge skill list` | See what skills are available for this project |
40-
| `forge edit --add <layers>` / `--remove <layers>` | Enable or disable layers at the user's request |
41-
| `forge doctor` | Quick health check if the user reports issues |
42-
43-
### Rules for running commands
44-
- Always run from the project root (`.` or `--dir <path>`)
45-
- Use `-y` flag to skip confirmation **only** when the user explicitly agreed
46-
- Never run destructive commands (`memory clear`, `edit --remove`) without confirming with the user first
47-
- After running a command, report the output back to the user
48-
4927
---
5028

5129
## LAYER 1 — CONTEXT

cmd/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func runInit(dir, ai, model, gateMode string, selLayers []string, yes, force boo
116116
filesToCreate = append(filesToCreate, label)
117117
}
118118
forgeConfigPath := templates.ForgeConfigPath(target, ai)
119-
filesToCreate = append(filesToCreate, ".forgerc.json (inside "+templates.AIDir(ai)+"/)")
119+
filesToCreate = append(filesToCreate, "forgerc.json (inside "+templates.AIDir(ai)+"/)")
120120
if !templates.HasSkills(target, ai) || force {
121121
label := skillPath
122122
if templates.HasSkills(target, ai) {

internal/templates/templates.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ func copySkillDir(skillName, destPath string) error {
244244
})
245245
}
246246

247-
// HasForgeMD checks if FORGE.md exists in the target directory.
247+
// HasForgeMD checks if FORGE.md exists in the project root.
248248
func HasForgeMD(target string) bool {
249249
_, err := os.Stat(filepath.Join(target, "FORGE.md"))
250250
return err == nil

0 commit comments

Comments
 (0)