diff --git a/.gitignore b/.gitignore index 0ba1a3c..d2da572 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,24 @@ node_modules/ dist/ .DS_Store +Thumbs.db *.log coverage/ artifacts/ playwright-report/ .forgeflow/ .playwright-mcp/ +.env +.env.* +!.env.example +*.pfx +*.p12 +*.key +*.pem +!build/update-signing-public.pem +.codex/ +.claude/ +.agents/ +.dyad/ +.idea/ +.vs/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..98b5667 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,13 @@ +# Contributing + +ForgeFlow changes must preserve exact-commit provenance, update integrity and safe deployment boundaries. + +Before opening a pull request: + +- do not commit tokens, SSH credentials, signing private keys, deployment secrets or local repository state; +- keep update manifests/checksums/signatures deterministic and reviewable; +- add regression tests for repository synchronization, dirty-file handling, update and deployment changes; +- keep real deployment targets configurable rather than embedding private infrastructure; +- run `npm run quality` and the managed validation workflow where supported. + +Release metadata should distinguish an unreleased package version from the latest published Gitea Release; do not advance public release claims until the corresponding release exists. diff --git a/SECURITY.md b/SECURITY.md index 40a8a88..e8ad22c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,3 +7,5 @@ Report suspected vulnerabilities privately to the repository owner. Do not publi For a useful report, include the affected ForgeFlow version/commit, component, minimal reproduction steps, expected and observed behaviour and security impact. Use sanitized or synthetic repository/server data whenever possible. The current release model requires exact-commit verification, origin-constrained credential use, signed update manifests, redacted diagnostics and bounded deployment adapters. Changes must not silently weaken those guarantees. + +Never commit Gitea tokens, SSH private keys, release-signing private keys, deployment credentials or local repository state. The packaged signing public key is intentionally public; private signing material must remain outside Git.