Skip to content

Branch Discipline

Rules that apply across all ElevateNow repos. Non-negotiable.


Branch naming

feature/p2-14-reference-data-api      # backlog item work
fix/wc-resolver-ohio-benefit-rate     # bug fix
chore/update-dependencies             # non-functional
agent/asset-library-sync              # agent-generated

Always include the backlog item ID when working from a ticket.


The sign-off gate

No merge to main without Vinod sign-off. This applies to:

  • All feature branches in all repos
  • Bug fixes that touch runtime behavior
  • Schema changes (especially input_schema in Agentic Studio tools)
  • Any change to a Conductor recipe

What "sign-off" means: Vinod reviews the PR, leaves an approving review, and explicitly says it's clear to merge. A thumbs-up comment is not sign-off.


Tool schema changes — extra gate

If your change modifies a tool's input_schema, output_schema, or any registration metadata:

  1. Push the updated tool file to vin-tools and to Tool_Chest/Tools/
  2. Delete the existing tool_database.tools record in Agentic Studio
  3. Re-register the tool — this captures the new schema into the stored record
  4. Confirm with Vinod before deleting any DB record
  5. Restart the flask-server on EC2 after re-registration

Body-only changes (logic only, no schema change) do not require re-registration — just push and restart.


What never goes to main without a feature branch

  • New tools or tool updates
  • CurationStudio UI pages
  • Conductor recipe changes
  • Workbench frontend changes
  • Wiki pages (this wiki)

If a ticket explicitly says "feature branch required" — it means it. The backlog tracker notes field carries these instructions per item. Read them before starting.


The stale schema signature

If you see the same validation error byte-for-byte on multiple consecutive workflow runs, the registered input_schema in tool_database.tools is stale — not the file. Do not push again or restart until you've verified the stored record matches the current file.

Diagnosis steps: 1. Confirm the fix is in the vin-tools file at the registered github_url 2. Confirm the fix is in Tool_Chest/Tools/<ClassName>.py 3. Pull the registered record and check the stored input_schema directly 4. If the old constraint is still there → delete record + re-register