)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7cc4f97025e445b65522d48e6361d867a09557b","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"- knowledge/nova.md: project facts — versioning rule definitions,"},{"line_number":13,"context_line":"  multi-cell architecture, coding conventions, REST API patterns,"},{"line_number":14,"context_line":"  internal service TLS, commit conventions"},{"line_number":15,"context_line":"- personas/nova-core.md: review behavior — conductor boundary"},{"line_number":16,"context_line":"  enforcement, versioning violations as hard blockers, upgrade safety,"},{"line_number":17,"context_line":"  test quality expectations (regression reproducers, utils.spawn,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9083a174_fa048b7b","line":14,"updated":"2026-04-17 11:34:24.000000000","message":"so without going into the content i disagree with the way your proposition to structure the knowledge base.\n\ni don\u0027t really care what the top level folder is called\nbut i think it shoudl be framed as a set of knowledge overlays that shoudl be composed grouped on a number of demitions\n\nlanguage\nrepo\ntopic\n\nthe repo subfolder proably does not need to be namesapced and can be flat\n\nso this woudl like in \nknowledge/overlays/repos/nova.md\n\nits content shoudl not duplicate info that shoudl be captured in the nova rfepo its self  what ti shoudl piamrlly contian is pointer to where its defiend or the repo routing index.\n\ninline rules are ok but should likely be tempory as they shoudl get \"upstreamed\" to the repo over time.\n\nthing like \"commit conventions\"\n\nwoudl live in \nknowledge/overlays/topic/commit-messages.md\n\nwe in theory have a single commit message convetion for all openstack porject\nhttps://wiki.openstack.org/wiki/GitCommitMessages\nthis is a snapshot of that in markdown format\nhttps://github.com/SeanMooney/openstack-ai-style-guide/blob/master/references/commit-message.md\n\nideally we would have a skill that know how to navicate this konwlage base and copose the relevent context for as a libary skill taht other skill can then use.\n\nfor exampel if we are workign in python it woudl read \n\nknowledge/overlays/language/python.md\n\nif we are also working on an ansibel change  change it woudl pull in\n\nknowledge/overlays/language/ansible.md\n\n\nif we are including a ci fix it would include\n\nknowledge/overlays/topic/zuul.md\n\nin knowledge i woudl also have reference and example sub dirs\n\nrefence would contian canonicla snapshot of authroitive soruces\n\nhttps://github.com/SeanMooney/openstack-ai-style-guide/blob/42af044a51633ee12152fccadbdf7a11d1af094e/references/dco.md\nhttps://github.com/SeanMooney/openstack-ai-style-guide/blob/42af044a51633ee12152fccadbdf7a11d1af094e/references/pep8.md\nhttps://github.com/SeanMooney/openstack-ai-style-guide/blob/42af044a51633ee12152fccadbdf7a11d1af094e/references/ai-policy.md\n\nexample perhaps could live eslse where but i would ike to have a set efo exampels that we can use to create evals for the skils so we can test and evolve them.","commit_id":"34ae889af58b3aa3cef5483aabcd3011e5746eea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7cc4f97025e445b65522d48e6361d867a09557b","unresolved":true,"context_lines":[{"line_number":12,"context_line":"- knowledge/nova.md: project facts — versioning rule definitions,"},{"line_number":13,"context_line":"  multi-cell architecture, coding conventions, REST API patterns,"},{"line_number":14,"context_line":"  internal service TLS, commit conventions"},{"line_number":15,"context_line":"- personas/nova-core.md: review behavior — conductor boundary"},{"line_number":16,"context_line":"  enforcement, versioning violations as hard blockers, upgrade safety,"},{"line_number":17,"context_line":"  test quality expectations (regression reproducers, utils.spawn,"},{"line_number":18,"context_line":"  eventlet-to-threads)"},{"line_number":19,"context_line":"- personas/nova-coresec.md: security review behavior — privsep scope,"},{"line_number":20,"context_line":"  RBAC policy correctness, credential handling, CVE vs hardening"},{"line_number":21,"context_line":"  distinction, OSSA process"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Content is split so knowledge holds project reference material (what"},{"line_number":24,"context_line":"the rules are) and personas hold review behavior (how to apply them)."},{"line_number":25,"context_line":"Generic review principles remain in rules/review.md and are referenced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ae258bb9_64805736","line":22,"range":{"start_line":15,"start_character":1,"end_line":22,"end_character":1},"updated":"2026-04-17 11:34:24.000000000","message":"this is think is where we diverge most. i do not think we shoudl have personas\nyou shoudl not need to opt into security review and i do not think we shoudl have project specifc review personas.\n\ni think we shoudl a singel reviewer skill that is able to load the project specific guidlines for the project tis used on.\n\nhttps://github.com/SeanMooney/openstack-ai-style-guide/blob/42af044a51633ee12152fccadbdf7a11d1af094e/agents/project-guidelines-extractor.md\n\nfor example it woudl be easy for it to pull in the VMT process docs if it belives it has found a security issue,\n\nthe vmt process shoudl be a topic doc\n\nknowledge/overlays/topic/vmt.md\n\nas shoudl privsep, srbac ectra.","commit_id":"34ae889af58b3aa3cef5483aabcd3011e5746eea"}],"knowledge/nova.md":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7cc4f97025e445b65522d48e6361d867a09557b","unresolved":true,"context_lines":[{"line_number":12,"context_line":"- **Docs**: https://docs.openstack.org/nova/latest/"},{"line_number":13,"context_line":"- **Contributor guide**: `doc/source/contributor/` in the Nova repo"},{"line_number":14,"context_line":"- **Specs**: `openstack/nova-specs` — `specs/\u003crelease\u003e/approved/`,"},{"line_number":15,"context_line":"  `specs/\u003crelease\u003e/implemented/`, `specs/backlog/`, `specs/abandoned/`"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For directory structure, core services, virt drivers, oslo libraries,"},{"line_number":18,"context_line":"configuration patterns, and test commands, refer to the Nova repository\u0027s"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"3b26bf14_9b401055","line":15,"updated":"2026-04-17 11:34:24.000000000","message":"i woudl prefer to have this in say \n\nhttps://review.opendev.org/c/openstack/nova/+/984540/5/doc/source/contributor/repo-overview.rst\n\n\nor simialr.","commit_id":"34ae889af58b3aa3cef5483aabcd3011e5746eea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7cc4f97025e445b65522d48e6361d867a09557b","unresolved":true,"context_lines":[{"line_number":19,"context_line":"in-tree documentation at `doc/source/contributor/`. Do not duplicate that"},{"line_number":20,"context_line":"information here — read it directly from the source."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"## Multi-Cell Architecture (Cells v2)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"```text"},{"line_number":25,"context_line":"                    API cell"},{"line_number":26,"context_line":"                 (super conductor)"},{"line_number":27,"context_line":"                /        |        \\"},{"line_number":28,"context_line":"           Cell A      Cell B     Cell C"},{"line_number":29,"context_line":"        (conductor)  (conductor)  (conductor)"},{"line_number":30,"context_line":"        (computes)   (computes)   (computes)"},{"line_number":31,"context_line":"```"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"## Versioning Rules"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":5,"id":"c5af1521_829a9b3d","line":31,"range":{"start_line":22,"start_character":0,"end_line":31,"end_character":3},"updated":"2026-04-17 11:34:24.000000000","message":"we have nova docs for this","commit_id":"34ae889af58b3aa3cef5483aabcd3011e5746eea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7cc4f97025e445b65522d48e6361d867a09557b","unresolved":true,"context_lines":[{"line_number":29,"context_line":"        (conductor)  (conductor)  (conductor)"},{"line_number":30,"context_line":"        (computes)   (computes)   (computes)"},{"line_number":31,"context_line":"```"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"## Versioning Rules"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"**RPC Version**:"},{"line_number":36,"context_line":"- Any modification to an RPC method signature requires a version bump in the"},{"line_number":37,"context_line":"  relevant manager"},{"line_number":38,"context_line":"- New RPC arguments must be optional with backward-compatible defaults"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"**Object Version**:"},{"line_number":41,"context_line":"- Adding, removing, or changing fields on a versioned object requires a version"},{"line_number":42,"context_line":"  bump"},{"line_number":43,"context_line":"- Check the `VERSION` constant and `obj_make_compatible()` in the project\u0027s"},{"line_number":44,"context_line":"  objects directory"},{"line_number":45,"context_line":"- Wireline format must remain stable for rolling upgrades"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"**Database Schema**:"},{"line_number":48,"context_line":"- Migrations must be additive-only (new columns/tables OK, no removals or type"},{"line_number":49,"context_line":"  changes)"},{"line_number":50,"context_line":"- Migrations must work online (no table locks, no downtime)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**API Microversion**:"},{"line_number":53,"context_line":"- Any change to request/response schema requires a new microversion"},{"line_number":54,"context_line":"- A microversion requires simultaneous API code + python-novaclient + Tempest +"},{"line_number":55,"context_line":"  reno updates"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"## Coding Conventions"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"### Deterministic Checks (enforced by CI)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Style violations, import ordering, and Nova-specific hacking checks (N-codes)"},{"line_number":62,"context_line":"are enforced by `tox -e pep8`. The full list of N-codes lives in"},{"line_number":63,"context_line":"`nova/hacking/checks.py`."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"### REST API"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Use \"project\" not \"tenant\", \"server\" not \"instance\""},{"line_number":68,"context_line":"- URLs use hyphens; request bodies use snake_case"},{"line_number":69,"context_line":"- 201 for synchronous creation, 202 for async"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"## Internal Service TLS"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Nova services communicate over internal channels that operators can secure with"},{"line_number":74,"context_line":"TLS:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"- **RPC transport** — `oslo.messaging` connections to RabbitMQ can use TLS"},{"line_number":77,"context_line":"  (`[oslo_messaging_rabbit] ssl \u003d True`, CA/cert/key options)"},{"line_number":78,"context_line":"- **Database** — SQLAlchemy connections to MySQL/PostgreSQL support TLS via"},{"line_number":79,"context_line":"  `connection` URL parameters"},{"line_number":80,"context_line":"- **Console proxies** — novncproxy, serial console proxy use TLS between proxy"},{"line_number":81,"context_line":"  and compute (e.g., VeNCrypt mutual TLS for VNC via `[vnc] auth_schemes`)"},{"line_number":82,"context_line":"- **Live migration** — libvirt live migration can use TLS"},{"line_number":83,"context_line":"  (`[libvirt] live_migration_with_native_tls`)"},{"line_number":84,"context_line":"- **Glance/Cinder/Neutron** — connections to other OpenStack services use"},{"line_number":85,"context_line":"  keystoneauth sessions over HTTPS; CA bundles configured via"},{"line_number":86,"context_line":"  `[keystone_authtoken]` and per-service `cafile` options"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"TLS configuration is operator responsibility."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"## Commit Conventions"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Nova uses **Gerrit**, not GitHub PRs"},{"line_number":93,"context_line":"- Third-party CI must vote +1 before core approval on driver changes"},{"line_number":94,"context_line":"- Release notes are mandatory for upgrade, security, or feature-impacting"},{"line_number":95,"context_line":"  changes (use `reno`)"},{"line_number":96,"context_line":"- Commit messages: reference Launchpad bug IDs with `Closes-Bug: #NNNNNN` or"},{"line_number":97,"context_line":"  `Related-Bug: #NNNNNN`"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"6e56ebdf_2f812b01","line":97,"range":{"start_line":32,"start_character":1,"end_line":97,"end_character":24},"updated":"2026-04-17 11:34:24.000000000","message":"none of this really feels liek it should be here.\n\nat least i woudl not want this to remapin itn his repo long term.","commit_id":"34ae889af58b3aa3cef5483aabcd3011e5746eea"}]}
