A sample scope for a custom Obsidian plugin
A written scope lists each function of a plugin and the acceptance test that proves it. You get a written scope with the quote, before you pay. This page shows a sample for a real plugin, and each line links to the public test file for that function. The unit tests run in the public release workflow, and the tests in the app run in private, so their results are not public.
This sample describes Kanban Embed, a plugin that the developer built as the developer's own product. No client ordered it.
Functions and acceptance tests
| Function | Acceptance test | Test file |
|---|---|---|
| The plugin shows a board of the Kanban plugin in any note that holds a kanban-embed code block. | Open the sample note Website project, and the board shows Backlog, In progress, Review and Done with the counts 3, 4/3, 1 and 2. | test/ |
| The plugin marks a lane that holds more cards than the limit in its heading. | In Website project, the lane In progress holds 4 cards with a limit of 3, and it shows 4/3 and the over-limit mark. | test/ |
| The lanes line of a block limits the board to the lanes that it names, in the order of that line. | Add the line lanes: Review, Backlog to a block, and the board shows Review first, Backlog second and no other lane. | tests/ |
| The line hide-done: true in a block hides the checked cards of the board. | Add the line hide-done: true to the block in Website project, and the two checked cards of the lane Done do not show. | tests/ |
| The plugin keeps the archive of a board out of the lanes. | Embed a board that has an Archive section, and no archived card shows in a lane. | tests/ |
| A click on the checkbox of a card checks that card off in the board file. | In Website project, select the checkbox of Compress hero images, and the board file shows that card as checked and no other change. | test/ |
| The plugin shows the board in Reading view and in Live Preview, and a card checkbox works in both. | In Live Preview, select the checkbox of the first card in Website project, and the board file changes while the board stays on screen. | test/ |
| The plugin draws the board again when the board file changes. | Add a card to the lane Review in the board file, and the open note Website project shows 11 cards, with 2 in Review. | test/ |
| The command Insert a board embed lists the boards of the vault and writes a code block for the selected board into the note. | Run the command in an empty note and select Mobile app, and the note gets the line board: [[Mobile app]]. | test/ |
Outside this scope
- This sample names macOS and Linux as its devices, because no test ran on Windows, on a phone or on a tablet.
- A board file with mixed Windows and Unix line endings is outside this scope, and the first change gives it one style.
- The Tasks done date of Kanban Embed is outside this scope, because new code in an order reads no undocumented part of Obsidian.
- The Pro functions of Kanban Embed are outside this sample, and an order gets a paid tier with the add-on Paid tier.
Price, payment and delivery
- A real quote holds this scope, the price, the tax and the legal details of the seller.
- The price of a custom plugin starts at $3,500 without tax, and delivery takes from 10 working days after you pay the first invoice.
- The first invoice is 50% of the price, and the second invoice follows acceptance.
- You get the plugin and its acceptance tests for the test period, and the full source code with the build files after acceptance.
- You test the build in your vault and on your devices for up to 10 working days.
- The price includes 30 days of fixes from the day of acceptance, for behavior that does not agree with the scope.
- These are the lowest public values of this site for a custom plugin, and a real quote states its own price and delivery date.
A real scope names the functions of your plugin, and you run each acceptance test in your own vault before you accept the build.