attune

Product preview · fictional organizations

Your integration
Menu

AI forward deployed engineer for integrations

Your product, joined to their code.

Attune plans the integration with your team and your customer's team. It builds the change in a sandbox and checks it. Their owner authorizes each release.

Scroll to begin, or choose a step.

Access

You request access. Their owner grants it.

Acme Studios, the vendor, selects the files of its customer's repository that the brief needs. Only the Fernhill Labs repository owner can grant them, file by file.

One integration

Each owner keeps their part.

Your product docs and the files their owner grants feed one shared brief. Attune builds in a sandbox and runs the acceptance checks from the brief. Their owner authorizes the release.

Brief and review

Both teams review one brief.

1 · Draft v1

Attune drafts the brief from Acme's docs and the granted files. Both teams confirm v1.

2 · Discussion

Fernhill's engineer asks if a retried upload can make two renditions. Attune answers from the brief and proposes a change.

3 · Proposed change

Task T2 changes. The acceptance checks stay the same. Saving creates v2, and both teams must confirm v2.

Sandbox

Attune builds the change in a private copy.

Each attempt changes only granted files and new files in the brief's scope, and makes one revision. After a failed check, Attune repairs the code in a new attempt. The checks stay the same.

Checks

Acceptance checks run on one exact revision.

A result applies only to that revision in that sandbox environment. A failure stays visible until a repair passes the same check. A blocked check names its owner and the next action.

Release

Four decisions. Each has its own owner.

Their repository owner grants access. Both teams confirm the current brief version. Their environment owner authorizes one revision to one target. Fernhill Labs then accepts it, as a separate decision.

Acme Studiosyour product

Attuneshared brief and sandbox

Fernhill Labstheir code and release

Fernhill Labsrelease

Product docsAcme approves what Attune reads
  • POST /v2/assets
  • asset.rendered
catalog-serviceTheir repository
  • upload.py
  • webhooks.py
  • invoices.py
AccessTheir owner grants, per fileBriefBoth teams confirmSandboxA private copyChecksC1 to C4, set in the briefReleaseTheir owner authorizes

Acme Studios approves what Attune learns.

Only their owner grants code access, file by file.

Attune builds in a private sandbox and runs the acceptance checks.

Their environment owner authorizes each release.

Integrations Fernhill Labs Assets sync

Maya R. · Acme Studios

Access

Current operation: read and model processing for the Assets sync brief.

fernhill/catalog-service at 4c1e9a7

Local repository in this preview. The GitHub connection is built; its live test is pending.

  • Sends product images to AcmeWithheld
  • Receives finished renditionsWithheld
  • Invoice records, not neededWithheld

Select files, then request access. Only the Fernhill Labs owner can grant it.

Who controls this code

Fernhill Labs owner
Grants or withdraws access, per file, for this brief.
Acme Studios (you)
Requests access. Cannot grant it.
Attune
Reads only granted files, at one commit.

Assets sync brief v1

v1 confirmed by both teams.

Requirements

  1. R1 Upload each new product image to Acme Studios.
  2. R2 Store the rendition when Acme's webhook arrives.
  3. R3 A retried upload never makes a second rendition.

Scope

Changes upload.py, webhooks.py and a new acme_client.py in catalog/assets/. Out of scope: billing/.

Tasks

  1. T1 Add the Acme Studios client, acme_client.py.
  2. T2 Send each upload with a new idempotency key.Use one idempotency key per upload attempt. Store it before the call.
  3. T3 Verify the webhook signature.

Acceptance checks · set before work

  • C1 Upload returns 201
  • C2 Duplicate webhook is ignored
  • C3 A retry makes one rendition
  • C4 A bad signature is rejected

Rough estimate

5 to 8 engineering hours for T1 to T3 · Attune's estimate, not a commitment. It assumes Acme's documented retry rules.

Confirmations

  • Fernhill Labs confirmed requirements · v1
  • Acme Studios confirmed feasibility · v1
  • v1 confirmed by both teams

Integrations Fernhill Labs Assets sync

Maya R. · Acme Studios

Sandbox

Private copy of fernhill/catalog-service at 4c1e9a7. Built against brief v1.

Attempts

Changed files · attempt 2

May change granted files, new files in catalog/assets/

May not change billing/, deploy settings, secrets. No network.

catalog/assets/upload.pyAttempt 2 · 9f3c2e1 · changed lines only

def on_new_image(image):    queue_for_later(image)    key = uuid.uuid4().hex  # T2 v1: a new key on each send    result = acme_client.send_upload(image, key)    store.save_asset_id(image.id, result["asset_id"])

T2 v1: a new key on each send. A retry after a timeout sends a second key. C3 shows the effect.

No grant for upload.py and webhooks.py in this session: this shows the work a grant makes possible. Preview: scripted code, and +/− counts the lines shown. Nothing runs on a real repository.

Integrations Fernhill Labs Assets sync

Maya R. · Acme Studios

Checks

Revision 9f3c2e1 · attempt 2 · brief v1

Acceptance checks · set in the brief before work, unchanged

CheckResult on 9f3c2e1Evidence
C1 Upload returns 201Not run
C2 Duplicate webhook is ignoredNot run
C3 A retry makes one renditionNot run
C4 A bad signature is rejectedNot run

Not run on 9f3c2e1. Results from 5e81c0a do not apply to it.

Preview: a scripted result. No test runs here.

Repair attempts

  1. Attempt 1 · 5e81c0aC2 failed. Attune sent it back for repair.
  2. Attempt 2 · 9f3c2e1Current revision. The same four acceptance checks apply.

Integrations Fernhill Labs Assets sync

Maya R. · Acme Studios

Release

Target: fernhill/catalog-service to staging · revision 9f3c2e1

Change Attempt 2, brief v1: 3 files, +28 −2 lines shown · Inspect the change

Evidence Acceptance checks have not run on 9f3c2e1. Open the checks

  1. 1 · Access grantDana K., Fernhill Labs repository owner

    Not granted in this session. Go to Access

  2. 2 · Brief confirmation · v1Each team confirms the same version

    Fernhill Labs confirmed v1

    Acme Studios confirmed v1

  3. 3 · Release authorizationBy their environment owner

    Customer owner view · Dana K.

  4. 4 · Customer acceptanceA separate decision by Fernhill Labs

    Customer view · Sam O. · after step 3

Authorization waits for the owner's grant of upload.py and webhooks.py; a run of the acceptance checks on 9f3c2e1.

Acme Studios cannot grant or authorize, and Attune cannot approve its own work. Preview: nothing deploys or contacts GitHub.

See one integration, start to finish.

Request a demo

Watch the integration workflow · 75 sec

Integration workflow

Illustrative product walkthrough · Attune is in development.

Illustrative product walkthrough · Attune is in development.

Where Attune fits

One method for many integration types.

Each story shows what their owner grants, one acceptance check set in the brief, and who authorizes the release.

Illustrations of integration types. Today Attune runs on Python services in local repositories, with synthetic companies and data.

Payments in their billing app

InvoiceAmount (USD)Status

INV-1042$630.00Paid

INV-1043$84.20Open

POST /v1/payments Idempotency-Key inv-1042-a1

201 succeeded · invoice marked paid

Second click · same key · no second payment

Their owner grants
billing/payments.py · read
Acceptance check
A double submit makes one payment.
Release authorized by
Their environment owner

Read Security and access for every statement and its limits.

Your integration

Bring one integration your customers struggle to ship.

We want to start with one real integration. Tell us which one.

A good first integration

  • Each new customer needs code in its own systems before your product works.
  • Your engineers repeat discovery and planning for each customer.
  • Your customers need control over access to their code.
  • A named owner on each side can review and approve.

Today

Attune runs in local development with synthetic companies, data and participants. Those runs cover Python services in local repositories. The GitHub connection is built; its live test is pending. No customer deployment yet.

Integrations Your integration

New brief · draft

This form does not send your request. Prepare it, copy it, then book a call.

This form needs JavaScript to prepare a request. Nothing is sent either way.

Or book a call now: book a 30-minute call. It opens Calendly, a separate service.