Support

Find an answer below, or report a problem.

Ways to get help

If no article answers your question, report the problem by email.

Opens your mail app. Or write to shipsignal@outerscope.xyz.

Help articles

Why we ask for an email code

Sign in with a code, not a password. We email a six-digit code to your address. Enter it on the sign-in page, and you are signed in. The code expires 10 minutes after it is sent.

You can ask for another code after a minute. If too many codes are requested, you will see a message asking you to try again in about an hour.

Suggesting a request or voting asks for the same kind of code. Your suggestion or vote is held until the code is entered. Once the code is entered within 10 minutes, the board saves the held action. Each verified email address counts once per request.

The public board shows titles, counts and status words. It never shows email addresses.

What the status words mean

Each request shows one status word. The word says where the request is now.

  • Open: the request is still collecting votes. A request with no change class yet stays Open until the owner sets one.
  • Waiting for approval: the coding agent is drafting the change, or the draft is waiting for the named approver to decide.
  • Draft failed: the latest draft attempt ended without a pull request. A failed draft is not retried.
  • Needs a human build: a back-end or access-controlled change reached its threshold, so a person builds it.
  • Approved: the named approver approved the draft.
  • Rejected: the named approver rejected the draft. The pull request stays open on GitHub.
  • Shipped: GitHub merged the pull request.

Why a request is not built yet

A front-end request gets a draft when four things are true. Its verified votes reach the front-end threshold for the project. The owner has set its change class to front-end. A repository is connected. And the project has not used up its drafts for the day, which is 5 by default.

If the day's drafts are used up, the request waits. The check runs again only when a vote is counted or a change class is set. Failed drafts count toward the day's limit too.

Back-end and access-controlled requests reach the back-end threshold instead. They are never drafted. They show Needs a human build, so a person builds them.

The named approver decides whether a draft goes ahead, and the change ships only after GitHub merges the pull request. The coding agent does not decide or merge.

If your code did not work

The message “That code did not work. Send a new code” means the code was wrong, or it had expired.

Ask for a new code, then enter the newest one. Nothing is saved until a code works.

If the code box is empty, the message is “Enter the six-digit code from the email.”

How votes count

Each verified email address can vote once on each request. A repeat vote changes nothing, and a vote cannot be taken back.

A suggestion counts as its suggester's own vote. A suggestion needs a title of 5 to 120 characters, and its details can run up to 2,000 characters.

The board shows the number of verified votes. A request reaches its threshold when that number is at or above the threshold set for its change class. Votes count only on a published board.

Create a project and its board

Give the project a name of 80 characters or fewer. Choose a board address of 3 to 40 characters, using lower-case letters, numbers and hyphens. ShipSignal refuses an address that starts or ends with a hyphen, and no other board can use it. The board is found at that address.

The person who creates a project becomes its owner. Only the owner can publish the board, connect GitHub, set thresholds, set change classes and name the approver.

Connect GitHub and name an approver

Only the owner connects or disconnects the repository, from project settings. GitHub asks you to install the ShipSignal GitHub App, and the app must be installed on exactly one repository. The app needs write access to contents and pull requests. ShipSignal refuses an archived repository, or one that another project already uses. When GitHub returns you to ShipSignal, the repository shows as connected. If the repository is disconnected, a draft started while none is connected fails, and a failed draft is not retried.

Name the approver by their GitHub login, in project settings. ShipSignal asks GitHub whether that login has write, maintain or admin access to the connected repository, and saves the name only if it does.

The approver links their GitHub account from the request page. That page is open only to the owner and project members, so a separate approver cannot reach the link button today. In this version, the owner is the one who links and decides on drafts. Only the linked account, while it still has write, maintain or admin access, can approve or reject a draft. Decisions are recorded under that GitHub account. If you name a different approver, the earlier link stops working.

Set vote thresholds

Each project has two thresholds. The front-end threshold starts at 1,000 votes, and the back-end threshold starts at 10,000 votes. Only the owner can change them, in project settings.

Each threshold is a whole number from 1 up to 2,147,483,647. Access-controlled requests use the back-end threshold.

A new threshold applies the next time a vote is counted or a change class is set.

Embed the board on your site

Turn on Publish board in project settings. Anyone who opens the board or the embed can then see its requests and their vote counts. You can turn publishing off at any time.

Copy the embed snippet from project settings and paste it on the page where the board should appear. The snippet is an iframe. It holds the board address and no private data. Until the board is published, the embed shows “This board is not published yet.”

Only the board pages can be shown inside another site. The rest of ShipSignal refuses to be framed.

How drafts are opened and approved

When a front-end request meets its conditions, ShipSignal's coding agent drafts the change and opens a draft pull request on the connected repository. A project can start 5 drafts a day by default, counted by UTC day.

The named approver opens the request in ShipSignal, reviews the draft pull request on GitHub, and chooses Approve or Reject. Approve posts an approving review on the pull request. Reject posts a review that asks for changes, with the reason if one is given. The decision buttons never merge or close a pull request.

A draft that fails leaves no pull request, and the request then shows Draft failed. A draft fails if it would use more than 120,000 tokens, and a change that breaks the agent's rules is refused. A request shows Shipped only after GitHub merges its pull request.

How A/B tests work

An A/B test measures a change. On the test page, the owner sets five rules: the primary metric, the base rate, the minimum lift, the length in days, and the ship-or-revert rule. The owner confirms the ship-or-revert rule with a checkbox. Its wording is fixed: ship if the measured lift reaches the minimum lift when the test ends, and revert otherwise.

Starting the test locks the five rules, and the database refuses any later change to them. Only the owner can start a test.

A small script on your site gives each visitor variant A or B and keeps that variant for the visitor. Your page calls the script's goal function when a visitor reaches the goal, and a goal counts once per visitor. If a visitor's browser blocks storage, that visitor can see a different variant on a later visit.

The results show the visitors assigned and the goals counted for each variant. Lift is how much better variant B converts than variant A, as a percentage of A's rate. No call is made until the test ends. Then the locked rule decides it: ship, or revert to the control. A call needs at least one goal from the control. ShipSignal shows the call. It does not ship or revert anything itself.

The credit ledger, with no payments

For each shipped change, the credit ledger has one row for each person who suggested or voted on it. A person who suggested it and also voted appears once, as a suggester. Each row shows the change's measured lift from its A/B test. Until the lift is measured, the ledger shows “not measured yet”, and the CSV cell is blank.

You can export the ledger for one shipped change as a CSV file. The file lists the shipped change, when it shipped, the contributor, their role, the time of the entry, and the measured lift.

The ledger records credit only. No money moves, and the ledger has no payment or amount field.