Compare commits
7 Commits
main
...
integratio
Author | SHA1 | Date | |
---|---|---|---|
8b203fbdb5 | |||
817a397522 | |||
c391faa557 | |||
b5b7affb1b | |||
3fb813f1ca | |||
cd9653c66a | |||
f204422943 |
42
DISCUSS.md
Normal file
42
DISCUSS.md
Normal 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 front‑matter, headers, and ADR structure?
|
||||
- Cross‑cutting policies
|
||||
- Where to maintain shared policies (security, privacy, accessibility) — under COMMON?
|
||||
- CI for docs
|
||||
- Keep current markdown/yaml linters repo‑wide; 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 per‑area 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.
|
@@ -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.
|
||||
|
@@ -9,8 +9,7 @@ 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>`.
|
||||
|
||||
|
@@ -1,58 +0,0 @@
|
||||
Weekly Recap – 2025-09-11
|
||||
|
||||
Scope
|
||||
- Capture of structural, CI, and prompt‑system 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 (top‑level)
|
||||
- docs/ — human docs ([README](README.md), [git‑workflow](git-workflow.md), [bootstrap‑cicd](bootstrap-cicd.md), [docs‑style](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, repo‑conventions)
|
||||
- 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`; pre‑commit (format/lint/commitlint), pre‑push (build/test/security)
|
||||
- `scripts/ci` detaches stdin for container runs to avoid pre‑push stdin issues
|
||||
|
||||
Git Workflow (recap)
|
||||
- Protect `main` and `release/*`; leave `integration` unprotected (auto‑merge on green once runners enabled)
|
||||
- See [docs/git‑workflow.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/*`; auto‑merge for PRs into `integration`
|
||||
- Optionally add link checker/spellcheck to prompts/docs
|
||||
- Seed CTO/COO area‑specific 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)
|
||||
|
@@ -1,9 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
import os, sys, yaml
|
||||
import os, sys
|
||||
|
||||
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:
|
||||
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):
|
||||
m = load_manifest(path)
|
||||
@@ -28,7 +50,8 @@ def main():
|
||||
if not mods:
|
||||
print(f"No modules resolved from {manifest}", file=sys.stderr)
|
||||
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):
|
||||
with open(p, 'r', encoding='utf-8') as f:
|
||||
return f.read().strip() + "\n\n"
|
||||
|
@@ -31,7 +31,11 @@ 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"
|
||||
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")"
|
||||
mv "$TMP_OUT" "$out"
|
||||
}
|
||||
|
Reference in New Issue
Block a user