merge e1ff9586-9d3b-4eb3-be16-6b3e9580fcdb
Message
merge e1ff9586-9d3b-4eb3-be16-6b3e9580fcdb
Diff
crates/cli/src/cmd/skill.rs+10 −7
--- a/crates/cli/src/cmd/skill.rs+++ b/crates/cli/src/cmd/skill.rs@@ -9,16 +9,19 @@ pub fn help() -> &'static str {99 /// Contract text: <=30 lines, <=900 bytes. Schema v1 decisions only.1010 /// SKILL_TEXT is the single source of truth; skill/skill.md body must equal it.1111 pub const SKILL_TEXT: &str = "f0rge v1: CONTRACT (not help)\n\12-id: uuid4 lowercase dashes kept; never changes\n\13-number: rank in (created,uuid) order; derived never stored\n\12+id: uuid4 lowercase dashes; never changes\n\13+number: rank (created,uuid); derived never stored\n\1414 files: one file per entity; command tree mirrors folder tree\n\1515 tree: issue<->issues/ pr<->prs/ task<->tasks/ ci<->ci/ wiki<->wiki/\n\1616 frontmatter: strict --- fences; unknown field warning; missing required error\n\17-ci verdict: step exit code; pass|fail|running|cancelled\n\18-never delete: close/archive only; archive moves folder\n\19-wiki: pages are files under wiki/; edit in place or via stdin\n\20-usage: f0rge [--json] <cmd> [args]; --jq uses system jq; never parse prose\n\21-json: compact fixed order; empty is [] or {}\n";17+git: .forge/ committed with repo; PR=git branch from worktree\n\18+ci: steps are scripts; run in filename order; first nonzero exit code=fail; pass|fail|running|cancelled\n\19+merge: applies prints conflicts never resolves; PR stays (state: merged), branch deleted\n\20+never delete: close/archive only; archive to .forge/archive/\n\21+wiki: files under wiki/; edit in place/stdin\n\22+spec: spec/schema.md frozen truth; labels.md/milestones.md registries\n\23+usage: f0rge [--json] <cmd> [args]; init makes .forge/ idempotent; --jq via jq; never parse prose\n\24+json: compact fixed order; empty []/{}\n";2225 2326 pub fn run(args: &[String], _fg: &f0rge_core::Forge) -> Result<(), CliError> {2427 for a in args {
skill/skill.md+10 −7
--- a/skill/skill.md+++ b/skill/skill.md@@ -3,13 +3,16 @@ name: f0rge33 description: local gh-like forge under .forge/44 ---55 f0rge v1: CONTRACT (not help)6-id: uuid4 lowercase dashes kept; never changes7-number: rank in (created,uuid) order; derived never stored6+id: uuid4 lowercase dashes; never changes7+number: rank (created,uuid); derived never stored88 files: one file per entity; command tree mirrors folder tree99 tree: issue<->issues/ pr<->prs/ task<->tasks/ ci<->ci/ wiki<->wiki/1010 frontmatter: strict --- fences; unknown field warning; missing required error11-ci verdict: step exit code; pass|fail|running|cancelled12-never delete: close/archive only; archive moves folder13-wiki: pages are files under wiki/; edit in place or via stdin14-usage: f0rge [--json] <cmd> [args]; --jq uses system jq; never parse prose15-json: compact fixed order; empty is [] or {}11+git: .forge/ committed with repo; PR=git branch from worktree12+ci: steps are scripts; run in filename order; first nonzero exit code=fail; pass|fail|running|cancelled13+merge: applies prints conflicts never resolves; PR stays (state: merged), branch deleted14+never delete: close/archive only; archive to .forge/archive/15+wiki: files under wiki/; edit in place/stdin16+spec: spec/schema.md frozen truth; labels.md/milestones.md registries17+usage: f0rge [--json] <cmd> [args]; init makes .forge/ idempotent; --jq via jq; never parse prose18+json: compact fixed order; empty []/{}