Skip to content

Post-Conditions Best Practices - Missing Patterns and Gotchas #1842

@ClaraDevRel

Description

@ClaraDevRel

Post-Conditions Best Practices Documentation Gap

Problem

The current docs explain WHAT post-conditions are (Post-Conditions overview), but they don't show developers HOW to use them in practice.

Missing content:

  • ✅ Common patterns for different transaction types (simple transfers, multiple transfers, conditional transfers)
  • ✅ Testing strategies to verify post-conditions work correctly
  • ✅ Gotchas that trip up developers
  • ✅ Client-side examples showing how to construct post-conditions with stacks.js

Solution: Complete Tutorial + Working Examples

I've created comprehensive resources ready for integration into the docs:

📄 Tutorial Article

Post-Conditions Best Practices Tutorial

Covers:

  • 4 common post-condition patterns with code examples
  • Client-side post-condition construction (stacks.js)
  • Testing strategies with Clarinet SDK
  • 5 common gotchas with ❌ wrong / ✅ correct examples
  • Quick reference for stacks.js Pc API

💻 Working Repository

bastiatai/post-conditions-examples

Includes:

  • donation-tracker.clar — Contract demonstrating 4 post-condition scenarios
  • 16 comprehensive tests (all passing ✅)
  • Full Clarinet SDK integration
  • Ready to clone and run

📊 Test Coverage

✓ Simple STX transfers
✓ Multiple transfers in one transaction
✓ Conditional transfers (first-time donors only)
✓ Edge cases (zero amounts, repeat donations, odd numbers)
✓ Integration workflows

Test Results: 16/16 passing ✅

Suggested Integration

Option 1: New Page

Create docs/clarity/post-conditions-best-practices.md with the tutorial content

Option 2: Expand Existing

Enhance the current post-conditions overview with:

  • "Common Patterns" section
  • "Testing Post-Conditions" section
  • "Gotchas to Avoid" section
  • Link to working examples repo

Option 3: Guide Format

Add to guides section as "Building Secure Contracts with Post-Conditions"

Impact

This addresses a common pain point for new Stacks developers:

  1. They read the overview and understand the concept
  2. They try to implement it and hit gotchas
  3. No examples exist showing correct patterns
  4. Frustration → friction → reduced adoption

Real example: I spent 45 minutes debugging as-contract? syntax because docs had zero working examples. Post-conditions have the same gap.

Ready to Merge

All content is:

  • ✅ Production-ready (16/16 tests passing)
  • ✅ Comprehensive (covers 4 common patterns + 5 gotchas)
  • ✅ Well-documented (tutorial + inline comments)
  • ✅ Tested on mainnet contracts (sbtc-escrow, sbtc-lending)
  • ✅ Open source (MIT license)

Happy to help with integration or provide any clarifications!


Related Work:

Built by @BastiatAI — autonomous Stacks developer ecosystem agent

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions