chore(release): publiseringsklar for open/ — README for standalone rot + MIT + policy-filer
Commons konsumeres som `shared/`-subtree av to repo som allerede ligger i `open/`. Innholdet var dermed offentlig fra før, men PEKEREN var det ikke: `shared/README.md` i open/portfolio-optimiser lenker til `ktg/`-namespacet og sier «All edits land in commons first (clone it, commit, push there)» — en URL en fremmed får 404 på. Dette gjør repoet publiserbart under open/. README: hodet var skrevet som om fila fortsatt lå i en konsuments `shared/`. H1 var `# shared/ — framework-neutral core`, og innledningen sa «this repository — the method built on MAF» — som beskriver et ANNET repo når fila leses fra commons' rot. Siste linje lenket til docs/plan/2026-06-26-maalbilde-agentic-loop.md, som ikke finnes her (den bor i portfolio-optimiser). Alle tre rettet; de to konsumentene er nå utgående lenker, ikke «dette repoet». Lagt til for `shared-asset`-klassen (repo-standard): LICENSE (MIT, byte-likt med soesknene) og `## Non-goals`. Klassen krever ikke `## Install` — repoet vendorers, det installeres ikke. CONTRIBUTING/SECURITY/CODE_OF_CONDUCT kreves av INGEN klasse; de er med for konsistens med de to soesknene. CONTRIBUTING er SKREVET OM, ikke kopiert: soesknenes versjon ber om Pull Requests, men org-ops slo PR-fanen av paa alle 19 repo fordi CONVENTIONS.md publiserer at PR-er ikke aksepteres. Aa kopiere den ville importert en motsigelse. SECURITY er omskrevet for et repo uten kjoerbar kode: angrepsflaten er spec- tekst som binder konsumentene, ikke et avhengighetstre. Gate: repo-standard v0.2.2, klasse shared-asset — 0 ERROR, 8 passerte. De 3 gjenstaaende WARN er falske positive mot nav-golden-fixturene (bundle-relative lenker + tilsiktede escape-nyttelaster som IKKE skal resolve). Fixturene er uroert: de konsumeres som ekte gate av portfolio-optimiser (0d50ab8). Verifisert foer commit: ingen secrets i sporet innhold eller i historikkens 37 commits; ingen e-post utover org-kontakten; STATE.md og *.local.md fortsatt usporet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013XuKPjWwJZNUponVrhoyY1
This commit is contained in:
parent
f98b28790a
commit
ddaae5d637
5 changed files with 279 additions and 46 deletions
66
CONTRIBUTING.md
Normal file
66
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Contributing to portfolio-optimiser-commons
|
||||
|
||||
Thank you for your interest. Please read this first — the workflow here is deliberately
|
||||
narrower than most repositories, and knowing that up front saves you wasted effort.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
## Pull requests are not accepted
|
||||
|
||||
The pull-request tab is **switched off** on this forge, across every repository in the
|
||||
organisation. That is a published position, not an oversight: this project is solo-maintained,
|
||||
and an enabled-but-permanently-empty PR queue would promise a review capacity that does not
|
||||
exist.
|
||||
|
||||
Use **issues** instead. A well-argued issue carries the same information as a patch and costs
|
||||
you less to write.
|
||||
|
||||
## What belongs here, and what does not
|
||||
|
||||
This repository is the framework-neutral core. Before opening an issue, check which side of the
|
||||
boundary your point falls on:
|
||||
|
||||
| Your point is about | Raise it in |
|
||||
|---|---|
|
||||
| The normative specs, the example bundles, the golden fixtures | **here** |
|
||||
| Behaviour of the MAF implementation | [`portfolio-optimiser`](https://git.fromaitochitta.com/open/portfolio-optimiser) |
|
||||
| Behaviour of the Claude Agent SDK implementation | [`portfolio-optimiser-claude`](https://git.fromaitochitta.com/open/portfolio-optimiser-claude) |
|
||||
|
||||
A change that is true of only one of the two stacks does not belong here, however correct it
|
||||
is — that is the whole point of the shared core. See the Non-goals in the [README](README.md).
|
||||
|
||||
## Reporting an issue
|
||||
|
||||
Useful issues on a specification repository look different from bug reports on code. The most
|
||||
valuable ones name a specific place in the text:
|
||||
|
||||
- **Quote the section and the sentence**, not just a line number. Line numbers here go stale
|
||||
quickly; a section heading plus the wording you are reading survives an edit above it.
|
||||
- Say which of the two things you are claiming: that the specification is **internally
|
||||
inconsistent**, or that it is **inconsistent with an implementation**. They have different
|
||||
remedies, and conflating them is the most common way a report stalls.
|
||||
- For a fixture, state the input, the output you expected, and the output you got.
|
||||
|
||||
## If you are maintaining a consuming repository
|
||||
|
||||
Sync is **pull-only**, and all edits land here first:
|
||||
|
||||
```sh
|
||||
git subtree pull --prefix=shared commons main --squash
|
||||
```
|
||||
|
||||
**Never run `git subtree push` from a consuming repository.** The reason, and what it cost the
|
||||
one time it happened, is documented in the [README](README.md).
|
||||
|
||||
## Conventions
|
||||
|
||||
Commits follow [Conventional Commits](https://www.conventionalcommits.org/)
|
||||
(`type(scope): description`). Changes to normative text are ratified before they land; the
|
||||
reasoning behind each ruling is recorded in [`docs/plan/`](docs/plan/), including for the
|
||||
rulings that were later reversed.
|
||||
|
||||
## Questions?
|
||||
|
||||
Open an issue.
|
||||
Loading…
Add table
Add a link
Reference in a new issue