agentsclimarketplace

Fondo ci integration

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/fondo-pack/skills/fondo-ci-integration

'Automate financial reporting workflows that complement Fondo with CI/CDFrom its SKILL.md

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill fondo-ci-integration

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.1 KB, 962 tokens by cl100k_base, as published. Nobody here has run it

Fondo CI Integration

Overview

Set up CI/CD for Fondo startup tax and bookkeeping integrations: run unit tests with mocked filing and compliance data on every PR, validate live API connectivity for tax filing status and bookkeeping records on merge to main. Fondo handles R&D tax credits, quarterly filings, and ongoing bookkeeping, so CI pipelines verify compliance data transforms, filing deadline monitoring, and automated alert workflows.

GitHub Actions Workflow

# .github/workflows/fondo-ci.yml
name: Fondo CI
on:
  pull_request:
    paths: ['src/fondo/**', 'tests/**']
  push:
    branches: [main]

jobs:
  unit-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm test -- --reporter=verbose

  integration-tests:
    if: github.ref == 'refs/heads/main'
    needs: unit-tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm run test:integration
        env:
          FONDO_API_KEY: ${{ secrets.FONDO_API_KEY }}

Mock-Based Unit Tests

// tests/fondo-service.test.ts
import { describe, it, expect, vi } from 'vitest';
import { checkFilingDeadlines } from '../src/fondo-service';

vi.mock('../src/fondo-client', () => ({
  FondoClient: vi.fn().mockImplementation(() => ({
    listFilings: vi.fn().mockResolvedValue({
      filings: [
        { id: 'fil_q1', type: '941', quarter: 'Q1-2026', status: 'filed', due_date: '2026-04-30' },
        { id: 'fil_q2', type: '941', quarter: 'Q2-2026', status: 'pending', due_date: '2026-07-31' },
      ],
    }),
    getComplianceStatus: vi.fn().mockResolvedValue({
      r_and_d_credit: { status: 'eligible', estimated: 45000 },
      state_filings: { ca: 'current', de: 'current' },
    }),
    getBookkeepingSummary: vi.fn().mockResolvedValue({
      month: '2026-03', revenue: 120000, expenses: 85000, net: 35000,
    }),
  })),
}));

describe('Fondo Service', () => {
  it('identifies upcoming filing deadlines', async () => {
    const deadlines = await checkFilingDeadlines();
    expect(deadlines.pending).toHaveLength(1);
    expect(deadlines.pending[0].type).toBe('941');
  });
});

Integration Tests

// tests/integration/fondo.integration.test.ts
import { describe, it, expect } from 'vitest';

const hasKey = !!process.env.FONDO_API_KEY;

describe.skipIf(!hasKey)('Fondo Live API', () => {
  it('retrieves compliance status', async () => {
    const res = await fetch('https://api.fondo.com/v1/compliance/status', {
      headers: { Authorization: `Bearer ${process.env.FONDO_API_KEY}` },
    });
    expect(res.status).toBe(200);
    const body = await res.json();
    expect(body).toHaveProperty('state_filings');
  });
});

Error Handling

CI IssueCauseFix
401 UnauthorizedInvalid API keyRegenerate at fondo.com dashboard settings
Empty filings listNo active filings for entityVerify correct entity ID in API requests
Compliance data staleSync delay from accounting systemAdd retry logic for recently updated records
Rate limit (429)Too many requests in test suiteSerialize integration tests and add throttling
Missing R&D credit dataEntity not enrolled in R&D programCheck enrollment status before querying credit endpoint

Resources

Next Steps

For deployment patterns, see fondo-deploy-integration.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.