Manual 0.8.0

Add a second project and say what may cross

Add a second project to this instance. Each project keeps its own namespace, folder and records, and nothing crosses until you say so.

Before you start

Configuration page

  1. Open the configuration page. If it is not open, run revetly config and open the address it prints.

  2. Select Add project.

    You should see Name this project.

  3. Enter the name this project is written under.

  4. Select Continue.

    You should see Where it lives.

  5. Enter a folder inside this instance, or leave it empty to use the project's name. Revetly keeps the project's conversations, decisions and delivery records in that folder, inside the instance's records repository.

  6. Tick Move to <FIRST_PROJECT> under Shared source settings, if the step shows it. Revetly otherwise has the new project read what the instance's own source tables name, as the first project does.

  7. Select Save and continue. Revetly starts the new project's watch loop where the instance runs one, and the loop waits for you to run its first pass.

    You should see Point it at your work.

  8. Read the top of the panel. Revetly wrote the project when you saved the folder, so the way out of the sequence says what leaving it does.

    You should see Keep project and leave.

  9. On the new project's card, further down the page, select Show 5 more.

  10. Go to Who can see this project.

    You should see May read this among the columns.

  11. Tick This may read it on the other project's row. Revetly declares the import on one side and the export on the other.

  12. Select Save. Revetly rewrites the projects section of the working agreement on every save.

    You should see May read this: nothing · This may read it: <FIRST_PROJECT> on this project's card.

Command line

  1. In revetly.toml at the project root, declare the second project and what it may read:

    # revetly.toml
    [projects.alpha]
    exports = ["beta"]
    
    [projects.beta]
    group_id = "demo-beta"
    root = "./beta"
    imports = ["alpha"]
    

    Revetly keeps beta's conversations, decisions and delivery records under ./beta, inside the instance's records repository.

  2. Read what beta inherits from the instance:

    revetly doctor --offline --project beta
    
    [FAIL] beta: instance scope   [connectors.<NAME>] names what to read — …
    

    If that line fails, beta reads the sources the instance's own table names, as the first project does.

  3. In revetly.toml, give each project its own table for what it reads:

    # revetly.toml
    [projects.alpha.connectors.commits]
    repos = ["."]
    
    [projects.beta.connectors.commits]
    repos = ["."]
    

    Revetly keeps the connection keys, such as token_env, at instance level for both projects.

  4. Bring the working agreement up to date:

    revetly refresh-agreement
    
    [refreshed ] AGENTS.md
    

    Revetly rewrites only its projects section, in each file carrying its marker.

  5. Confirm the instance declares both, and where beta's records go:

    revetly doctor --offline --project beta
    
    [PASS] projects   2 declared (alpha, beta); default 'alpha'; …
    [PASS] working agreement   AGENTS.md says which project — <PROJECTS>
    [PASS] beta: records repo   engine-owned clone at <INSTANCE> (the instance's records repository, records_clone = .), not synced with its remote (--offline) — the engine is its only automated writer, and the one repository it pushes to …
    

    Revetly pushes them where the instance declares a records_clone, and reads them in place where it declares none.

  6. Confirm beta's watch loop waits for its first pass:

    revetly watch --once --project beta
    

    You should see waiting for its first pass — … in the terminal.

    Revetly starts this loop when the declaration is saved, if the instance's watch loop is on, and it bills nothing until you run revetly ingest.

  7. Read what may cross between them:

    revetly projects
    
    imports: <FIRST_PROJECT>
    

Troubleshooting

Next steps