7 Commits

Author SHA1 Message Date
8b203fbdb5 chore(prompts): host fallback build and minimal manifest parser (no PyYAML)
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:27:55 -05:00
817a397522 docs: point RESUME to COMMON/questions; clarify prompts output locations
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:18:19 -05:00
c391faa557 chore(repo): remove root dist directory (area-specific packs only)
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:17:21 -05:00
b5b7affb1b chore(structure): relocate proposals/questions to COMMON; area-specific dist; docs/DISCUSS.md; resolve conflicts
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:16:17 -05:00
3fb813f1ca chore(repo): enforce clean root and docs/ relocation (fix)
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:06:18 -05:00
cd9653c66a chore(repo): clean root; move docs; keep areas for prompts
Some checks failed
CI / checks (push) Has been cancelled
2025-09-11 07:05:00 -05:00
f204422943 feat(org): org structure + prompts + link style + restore BOOTSTRAP.md
Some checks failed
CI / checks (push) Has been cancelled
CI / checks (pull_request) Has been cancelled
Squash-merge bootstrap-org into integration
2025-09-10 22:47:38 +00:00
6 changed files with 74 additions and 76 deletions

42
DISCUSS.md Normal file
View File

@@ -0,0 +1,42 @@
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.

View File

@@ -1,12 +0,0 @@
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,8 +9,7 @@ Key Documents
- Documentation style: [docs-style.md](docs-style.md) - Documentation style: [docs-style.md](docs-style.md)
- Operational notes: [RESUME.md](RESUME.md), [TODO.md](TODO.md) - Operational notes: [RESUME.md](RESUME.md), [TODO.md](TODO.md)
- History: [history/BOOTSTRAP.md](history/BOOTSTRAP.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 Usage
- Make targets moved to `scripts/Makefile`. Use `make -f scripts/Makefile <target>`. - Make targets moved to `scripts/Makefile`. Use `make -f scripts/Makefile <target>`.

View File

@@ -1,58 +0,0 @@
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,9 +1,31 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os, sys, yaml import os, sys
def load_manifest(path): 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: with open(path, 'r', encoding='utf-8') as f:
return yaml.safe_load(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
def resolve(path, seen): def resolve(path, seen):
m = load_manifest(path) m = load_manifest(path)
@@ -28,7 +50,8 @@ def main():
if not mods: if not mods:
print(f"No modules resolved from {manifest}", file=sys.stderr) print(f"No modules resolved from {manifest}", file=sys.stderr)
sys.exit(1) sys.exit(1)
os.makedirs(os.path.dirname(out_path), exist_ok=True) if out_path != '-':
os.makedirs(os.path.dirname(out_path), exist_ok=True)
def read(p): def read(p):
with open(p, 'r', encoding='utf-8') as f: with open(p, 'r', encoding='utf-8') as f:
return f.read().strip() + "\n\n" return f.read().strip() + "\n\n"

View File

@@ -31,7 +31,11 @@ build_manifest() {
# Write on host to avoid ownership issues; container prints to stdout. # Write on host to avoid ownership issues; container prints to stdout.
TMP_OUT=$(mktemp) TMP_OUT=$(mktemp)
trap '[[ -n "${TMP_OUT:-}" ]] && rm -f "$TMP_OUT"' EXIT trap '[[ -n "${TMP_OUT:-}" ]] && rm -f "$TMP_OUT"' EXIT
ci_run "python3 scripts/prompt_build.py '$manifest' -" >"$TMP_OUT" 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
mkdir -p "$(dirname "$out")" mkdir -p "$(dirname "$out")"
mv "$TMP_OUT" "$out" mv "$TMP_OUT" "$out"
} }