import { type OrgYaml, type RepoYaml } from "./config.js"; export declare const MEMORY_SCHEMAS: Record; /** * v1.1.0 §5 — Teams that ship with the bundle. Each gets OKR.md + * KNOWLEDGE.md + composition.yaml copied into `/teams//`. * Kept in sync with `src/util/composition.ts:KNOWN_TEAMS`. */ export declare const SCAFFOLD_TEAMS: readonly ["core", "product", "engineering", "business", "brand"]; /** * Workflows seeded automatically on org creation. v1.3.7 §3.6 retired the * legacy templates (discovery-cycle, pmf-validation, autoplan-pm, weekly-retro) * and dissolved the monolithic `problem-definition` chain into selectable * problem-definition workflows (scqa/five-whys/tdcc; mece/xyz-hypothesis remain * skills). The full planning set is seeded so the two mains (new-build, * improvement) resolve their `_workflow/` sub-references out of the box. */ export declare const SCAFFOLD_WORKFLOWS: readonly ["research", "new-build", "improvement", "idea-refinement", "requirements-analysis", "market-research", "hypothesis", "kpi-check", "data-analysis", "scqa", "five-whys", "tdcc"]; export declare function slugify(s: string): string; export interface ScaffoldOrgInput { workspace: string; name: string; slug?: string; provider: OrgYaml["provider"]; remoteUrl?: string | null; messenger: string; /** * v1.2 §4.1 — org-level Chief display name. When omitted, `.org.yaml` * is written without `chief_name` and runtime falls back to "Chief". */ chiefName?: string; } /** * Create `//` with the full v1.1.0 + v1.2 layout: * .org.yaml * memory/{cron-logs,open-questions,ledger}/ + 4 schema JSONLs * workflows/{new-build,improvement,…}/workflow.yaml (v1.3.7 §3.6 planning set) * repositories/ * / * agents/main/chief/SKILL.md (copied from bundle) * teams/{product,engineering,design,marketing}/{OKR.md, KNOWLEDGE.md, composition.yaml} * knowledge/ * * All bundle-source seeds are idempotent — existing files are not * overwritten so re-running on a customized org is safe. Missing bundle * sources (rare — only happens in fresh dev checkouts before the v1.1 * release files land) are silently skipped. */ export declare function scaffoldOrg(input: ScaffoldOrgInput): { orgDir: string; orgYaml: OrgYaml; }; export interface ScaffoldRepoInput { orgDir: string; orgSlug: string; repoDir: string; name?: string; slug?: string; role?: RepoYaml["role"]; notes?: string; products?: string[]; } /** * Write `/.solosquad/repo.yaml`. Auto-derives slug/name from folder name * and remote_url/language from the repo when not provided. */ export declare function scaffoldRepoYaml(input: ScaffoldRepoInput): RepoYaml; /** Given a clone URL, derive a filesystem-safe slug. */ export declare function slugFromCloneUrl(url: string): string;