11 Commits

Author SHA1 Message Date
e18cb24097 docs(changelog): add CHANGELOG.md and link from docs index
Some checks failed
Release / tag-and-notes (push) Has been cancelled
Nightly / report (push) Has been cancelled
2025-09-12 08:42:04 -05:00
ee6fed4ad2 docs(recap): add weekly recap for 2025-09-11 and link from docs index
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-12 08:37:03 -05:00
d9c0402981 docs: point RESUME to COMMON/questions; clarify prompts output locations
Some checks failed
Release / tag-and-notes (push) Has been cancelled
Nightly / report (push) Has been cancelled
2025-09-11 07:18:10 -05:00
21a8361174 chore(repo): move DISCUSS to docs (root cleanup)
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-11 07:17:38 -05:00
39ec59a356 chore(repo): remove root dist directory (area-specific packs only)
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-11 07:17:12 -05:00
e33ee77db9 release: v0.0.5
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-11 07:16:43 -05:00
b913a983bd chore(repo): clean root (remove misplaced docs from main)
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-11 07:07:00 -05:00
1e65aadda9 release: v0.0.3
Some checks failed
Release / tag-and-notes (push) Has been cancelled
2025-09-11 07:05:23 -05:00
a00b6a8782 chore(repo): clean root and move docs
- Move docs to docs/; keep areas for prompts only
- Relocate Makefile to scripts/Makefile; update docs to use it
- Move ci.Dockerfile to docker/ci.Dockerfile; update compose
- Move commitlint config to .config and update hook
- Remove root AGENTS.md (use area AGENTS.md)
2025-09-10 18:00:50 -05:00
d381070c75 release: v0.0.2
Some checks failed
Release / tag-and-notes (push) Has been cancelled
Nightly / report (push) Has been cancelled
Squash-merge integration into main for v0.0.2
2025-09-10 22:47:49 +00:00
9cb1f5da1f Merge pull request 'release: merge integration into main' (#2) from integration into main
Some checks failed
Release / tag-and-notes (push) Has been cancelled
Reviewed-on: KNEL/LLMScaffolding#2
2025-09-10 21:50:53 +00:00
6 changed files with 76 additions and 74 deletions

View File

@@ -1,42 +0,0 @@
DISCUSSION Areas, Structure, Ownership
Context
- This repo hosts generic, foundational practices reusable across projects.
- Areas: COMMON (shared practices), CTO (shared technical standards), COO (business ops), CCO (deferred; placeholder only).
Decisions Confirmed
- Area directories are uppercase: COMMON, CTO, COO, CCO.
- Shared practices and base guidance live under COMMON.
- CCO is deferred for now; placeholder directory only.
Open Questions to Confirm
- Naming conventions within areas
- File naming: keep kebab-case (e.g., [COMMON/git-workflow.md](COMMON/git-workflow.md)) or use TitleCase?
- Per-area `README.md` vs. `INDEX.md` expectations.
- Scope boundaries
- COMMON: include Git workflow, CI/bootstrap parity, templates (PR/issue), documentation style guide, ADR pattern, security/privacy baselines?
- CTO: preferred tech stacks, language/runtime versions, container base image policy, local dev environment patterns (devcontainers/Make), testing strategy, quality bars?
- COO: operating rhythm (cadences, ceremonies), roles/RACI, OKR/KPI templates, onboarding, procurement/vendor-lite guidance, documentation templates?
- CCO: when in scope, include customer journey templates, support/SLA baselines, enablement playbooks, feedback loops? Any overlap rules with COO/CTO?
- Consumers and audience
- Internal only or some content public-facing? Any confidentiality/compliance constraints (esp. COO/CCO)?
- Reuse strategy
- Copy into new repos vs. reference centrally? Provide “adoption guides” per area? Offer minimal vs. advanced profiles?
- Ownership & change control
- CODEOWNERS per area? Who approves updates across COMMON/CTO/COO?
- Labels and PR templates per area; contribution guidelines?
- Document shape and standards
- Prescriptive checklists vs. narrative guidance; include “10-minute quickstart” per area?
- Standardize frontmatter, headers, and ADR structure?
- Crosscutting policies
- Where to maintain shared policies (security, privacy, accessibility) — under COMMON?
- CI for docs
- Keep current markdown/yaml linters repowide; add link checker/spellcheck?
- Migration of existing docs
- Which existing files beyond Git workflow and CI bootstrap should move under COMMON now vs. later (e.g., proposals, questions, [RESUME.md](RESUME.md), [TODO.md](TODO.md))?
Proposed Next Steps (pending answers)
- Seed perarea README with scope, audiences, adoption guidance.
- Create COMMON/templates/ for reusable checklists, PR/issue templates, ADRs.
- Map/move additional shared docs into COMMON and update references.
- Define CODEOWNERS and contribution norms per area.

12
docs/CHANGELOG.md Normal file
View File

@@ -0,0 +1,12 @@
Changelog
v0.0.1-Bootstrap — 2025-09-11
- Clean root: only README/LICENSE, allowed dotfiles, and directories.
- Docs consolidated under docs/ with clickable links.
- COMMON/CTO/COO/CCO reserved for prompts, questions, and proposals.
- Modular prompt packs: COMMON base + area manifests; packs in CTO/dist/prompts and COO/dist/prompts.
- CI image at docker/ci.Dockerfile; compose at docker/ci.compose.yml.
- Make targets in scripts/Makefile; hooks installed via scripts/setup-hooks.
- Commitlint config in .config/commitlint.config.cjs; hook updated.
- Tags/releases reset to this baseline; previous tags removed.

View File

@@ -9,7 +9,8 @@ Key Documents
- Documentation style: [docs-style.md](docs-style.md)
- Operational notes: [RESUME.md](RESUME.md), [TODO.md](TODO.md)
- History: [history/BOOTSTRAP.md](history/BOOTSTRAP.md)
- Changelog: [CHANGELOG.md](CHANGELOG.md)
- Weekly recap: [RECAP-2025-09-11.md](RECAP-2025-09-11.md)
Usage
- Make targets moved to `scripts/Makefile`. Use `make -f scripts/Makefile <target>`.

58
docs/RECAP-2025-09-11.md Normal file
View File

@@ -0,0 +1,58 @@
Weekly Recap 2025-09-11
Scope
- Capture of structural, CI, and promptsystem work to resume quickly next week.
Highlights
- Clean root policy enforced: only `README.md`, `LICENSE`, allowed dotfiles, and directories.
- Docs consolidated under `docs/` with clickable relative links.
- Areas (COMMON/CTO/COO/CCO) reserved for prompts, questions, and proposals.
- Modular prompt packs: COMMON modules + CTO/COO manifests; builder runs in container with host fallback.
- CI image moved to `docker/ci.Dockerfile`; compose updated.
- Make targets moved to `scripts/Makefile`.
- Commitlint config moved to `.config/commitlint.config.cjs`; hook updated.
- Baseline tag and release: `v0.0.1-Bootstrap` from current main; all other tags/releases removed.
Current Layout (toplevel)
- docs/ — human docs ([README](README.md), [gitworkflow](git-workflow.md), [bootstrapcicd](bootstrap-cicd.md), [docsstyle](docs-style.md), [RESUME](RESUME.md), [TODO](TODO.md), [DISCUSS](DISCUSS.md), history)
- COMMON/ — prompts ([prompt/*]), questions ([../COMMON/questions](../COMMON/questions/)), proposals ([../COMMON/proposals](../COMMON/proposals/))
- CTO/ — [AGENTS.md](../CTO/AGENTS.md), packs in [CTO/dist/prompts](../CTO/dist/prompts)
- COO/ — [AGENTS.md](../COO/AGENTS.md), packs in [COO/dist/prompts](../COO/dist/prompts)
- docker/ — compose + CI Dockerfile
- scripts/ — Makefile, hooks, CI, prompts builder
Prompt System
- Modules in `COMMON/prompt/modules/*` (persona, style, safety, tools, planning, execution, repoconventions)
- Manifests in `COMMON/prompt/manifests/*` (base, cto, coo)
- Packs built to `CTO/dist/prompts/cto.md` and `COO/dist/prompts/coo.md`
- Builder: `scripts/prompts` calls `scripts/prompt_build.py`
- Runs inside CI container; falls back to host if container stdout is empty
- No PyYAML dependency (minimal manifest parser)
CI/Tooling
- CI Dockerfile at `docker/ci.Dockerfile` (shellcheck, shfmt, hadolint, actionlint, yamllint, prettier/markdownlint/commitlint)
- Compose at `docker/ci.compose.yml` mounts repo at `/workspace`
- Hooks via `scripts/setup-hooks`; precommit (format/lint/commitlint), prepush (build/test/security)
- `scripts/ci` detaches stdin for container runs to avoid prepush stdin issues
Git Workflow (recap)
- Protect `main` and `release/*`; leave `integration` unprotected (automerge on green once runners enabled)
- See [docs/gitworkflow.md](git-workflow.md)
Tags/Releases
- Present: `v0.0.1-Bootstrap` only (current clean baseline)
- Removed: v0.0.2/3/4/5 and their releases
Next Steps (recommended)
- Enable Gitea Actions runner; add protected checks on `main`/`release/*`; automerge for PRs into `integration`
- Optionally add link checker/spellcheck to prompts/docs
- Seed CTO/COO areaspecific modules (small deltas from COMMON)
- Consider docs/CHANGELOG.md; for now, this recap is the source
Quick Resume Checklist
1) Pull: `git fetch --all --prune && git switch main && git pull`
2) Install hooks: `make -f scripts/Makefile hooks-setup`
3) Rebuild packs: `make -f scripts/Makefile prompts`
4) Run checks: `make -f scripts/Makefile check`
5) Start with [docs/DISCUSS.md](DISCUSS.md) and [docs/TODO.md](TODO.md)

View File

@@ -1,31 +1,9 @@
#!/usr/bin/env python3
import os, sys
import os, sys, yaml
def load_manifest(path):
# Minimal YAML parser for our simple manifests:
# keys: name (ignored), include: [..], modules: [..]
data = {"include": [], "modules": []}
key = None
with open(path, 'r', encoding='utf-8') as f:
for raw in f:
line = raw.rstrip('\n')
s = line.strip()
if not s or s.startswith('#'):
continue
if s.startswith('include:'):
key = 'include'
continue
if s.startswith('modules:'):
key = 'modules'
continue
if s.startswith('name:'):
key = None
continue
# list item under current key
if key in ('include', 'modules') and s.startswith('- '):
item = s[2:].strip()
data[key].append(item)
return data
return yaml.safe_load(f)
def resolve(path, seen):
m = load_manifest(path)
@@ -50,8 +28,7 @@ def main():
if not mods:
print(f"No modules resolved from {manifest}", file=sys.stderr)
sys.exit(1)
if out_path != '-':
os.makedirs(os.path.dirname(out_path), exist_ok=True)
os.makedirs(os.path.dirname(out_path), exist_ok=True)
def read(p):
with open(p, 'r', encoding='utf-8') as f:
return f.read().strip() + "\n\n"

View File

@@ -31,11 +31,7 @@ build_manifest() {
# Write on host to avoid ownership issues; container prints to stdout.
TMP_OUT=$(mktemp)
trap '[[ -n "${TMP_OUT:-}" ]] && rm -f "$TMP_OUT"' EXIT
ci_run "python3 scripts/prompt_build.py '$manifest' -" >"$TMP_OUT" || true
# Fallback: if container produced no output, run on host
if [[ ! -s "$TMP_OUT" ]]; then
python3 scripts/prompt_build.py "$manifest" - >"$TMP_OUT"
fi
ci_run "python3 scripts/prompt_build.py '$manifest' -" >"$TMP_OUT"
mkdir -p "$(dirname "$out")"
mv "$TMP_OUT" "$out"
}