# Contributing — `@futdevpro/dynamo-e2e`

Köszönjük, hogy hozzájárulsz! Ez egy bedrock-package a Dynamo + FDP
ecosystem-hez. A módosítások N-szeresen fan-out-elnek a consumer-projekteken,
így minimális defensiveness elvárt.

## Setup

```bash
git clone git@github.com:futdevpro/dynamo-e2e.git
cd dynamo-e2e
pnpm run prep
```

## Develop

```bash
pnpm run build-base    # tsc → ./build
pnpm test              # build + jasmine
pnpm run test:coverage # build + c8 jasmine — 75/65/75/75 küszöb
```

## Hozzájárulási checklist

A PR-előtt:

- [ ] `pnpm test` zöld lokálisan
- [ ] `pnpm run test:coverage` zöld (mindenhol >75% statements / functions / lines, >65% branches)
- [ ] Új feature → spec + getting-started + per-fieldtype-test-matrix update
- [ ] Deterministic emission — `STAMP_BUILT_AT` const, semmilyen `Date.now()` a generator-ban
- [ ] Pure JavaScript a page-script-ekben (NEM TS — a browser direkt futtatja)
- [ ] JSDoc minden új public export-on
- [ ] CHANGELOG.md új section a release-version-nel

## Branch-strategy

- `master` — kötelező-zöld; CICD-publish-eli
- `feat/*` — feature branches; PR-rel mergel
- `fix/*` — bug-fix branches
- `chore/*` — non-functional changes (docs, deps)

## Verziózás

- **Major (`MM.x.x`)**: API-break. **NINCS automatikus** — emberi
  decision (lásd MP-07 SP-F példa)
- **Minor (`MM.mm.0`)**: új feature, additive
- **Patch (`MM.mm.p`)**: bug-fix, doc-only

A `dynamo-cli` `dc bump-version` husky-pre-commit auto-bumpolja a
patch-szegmenset. Major/minor-bumpot manuálisan kell beállítani a
`package.json`-ban a commit előtt — ÉS a CHANGELOG-ot is.

## A test-case-mátrix-bővítés (Wave-2+)

Új field-type-hozzáadás:

1. `src/_modules/contracts/_collections/test-case-sets/<type>-field-test-cases.const.ts`
2. Hozzáfűzd a `FIELD_TYPE_TEST_CASE_REGISTRY`-be
3. `src/_modules/generators/_collections/field-emission.util.ts` `emitInteraction` + `emitAssertion` dispatch-ágat add hozzá
4. (Opcionális) `src/_modules/runtime/_services/<type>-page-object.ts` page-object + fixture
5. Specifikációs `__documentations/per-fieldtype-test-matrix.md` táblát bővíts
6. Specifikáció `cwv|generators|runtime` modulon test minden új dispatch-ágra

## Code style

- TypeScript strict-laza (lásd `tsconfig.json`)
- Hunglish dokumentáció + Hungarian inline-comment (memory: project konvenció)
- Top-of-file imports (`import` only, NEM `require()`)
- Naming: `DyE2E_*` per Dynamo-konvenció (DataModel: `_DataModel`, Service: `_Service`, stb.)
- ESLint: `pnpm lint` (`@futdevpro/dynamo-eslint` config)

## CICD

- A push automatikusan triggereli az Overseer pipeline-t
- A `.dynamo/pipeline.cicd.config.json` 9 step-pel:
  discord-start → pre-flight → install → build → test → **coverage** → npm-publish → pipeline-report → discord-result
- A `coverage` step a 75% küszöb alatti merge-et blokkolja
- A `npm-publish` step `skipIfPublished: true` — manual `npm publish` is OK

## Memory + plan-háló

A nagyobb feature-ek a `__documentations/plans/dynamo-e2e-foundation/`
HYPERPLAN.md + MP-N file-okba kerülnek először. Az implementáció után a
CHANGELOG.md-be kerül a release-summary.

## Kapcsolat

- Issues: github.com/futdevpro/dynamo-e2e/issues
- Maintainer: @itharen (Tahi-Toth Balazs)
- Discord: #bedrock-builds
