Skip to content

Create and Publish Agreement

Agreement publishing follows the CLI build workflow used by asactl.

Prepare local files

  • ~/.asactl/build/agreement/{name}/{version}/agreement.json
  • ~/.asactl/build/agreement/{name}/{version}/meta.json (local tracking only)

Rules:

  • name: lowercase letters, numbers, -, length 3-30, and must not start with a number
  • version: exact version string such as v1.0.0
  • agreement.json must match directory name/version

Local workspace roles:

  • agreement.json: required, authored by you, published
  • meta.json: optional local tracking file, created/updated locally, not published

Minimal example:

{
  "name": "sample-agreement",
  "version": "v1.0.0",
  "description": "Describe the business scenario and agreement purpose.",
  "interface": {
    "userState": [],
    "functions": []
  }
}

Build and validate

asactl build agreement

Before publish:

  • ensure JSON is valid
  • ensure required fields are complete
  • ensure naming/version is consistent

Publish process

Target repo:

  • https://github.com/open-asa/asa.git

Publication rule:

  • publish only agreement.json
  • never publish meta.json
  • target path: {name}/{version}/agreement.json

Recommended Git flow:

  1. sync upstream main
  2. create branch agreement/{name}-{version}
  3. commit only target agreement.json
  4. push and open PR to main