diff --git a/apps/logicsrc-web/contract/logicsrc-web.contract.test.ts b/apps/logicsrc-web/contract/logicsrc-web.contract.test.ts index 7e202715..c3cb4756 100644 --- a/apps/logicsrc-web/contract/logicsrc-web.contract.test.ts +++ b/apps/logicsrc-web/contract/logicsrc-web.contract.test.ts @@ -177,7 +177,7 @@ describe("POST /api/hire-us/coinpay-checkout", () => { payment_method: "both", currency: "usdc_pol", blockchain: "USDC_POL", - description: "LogicSRC Hire Us - 10h @ $400/hour", + description: "LogicSRC Hire Us - 10 agent-hours @ $400/agent-hour", success_url: "https://logicsrc.test/hire-us?payment=success", cancel_url: "https://logicsrc.test/hire-us?payment=cancelled", redirect_url: "https://logicsrc.test/hire-us?payment=coinpay", @@ -277,7 +277,7 @@ describe("POST /api/hire-us/coinpay-checkout", () => { expect(response.status).toBe(201); expect(createBody.amount_usd).toBe(10100); - expect(createBody.description).toBe("LogicSRC Hire Us - 25.25h @ $400/hour"); + expect(createBody.description).toBe("LogicSRC Hire Us - 25.25 agent-hours @ $400/agent-hour"); expect(createBody.metadata).toMatchObject({ billing: "metered_hours", hours: 25.25, rate_usd_per_hour: 400 }); expect(body.payment).toMatchObject({ amount_usd: 10100, hours: 25.25, rate_usd_per_hour: 400 }); }); @@ -303,7 +303,7 @@ describe("POST /api/hire-us/coinpay-checkout", () => { expect(response.status).toBe(422); expect(body).toEqual({ success: false, - error: "Approved hours must be a quarter-hour increment of at least 10" + error: "Approved agent-hours must be a quarter-hour increment of at least 10" }); } diff --git a/apps/logicsrc-web/e2e/logicsrc.spec.ts b/apps/logicsrc-web/e2e/logicsrc.spec.ts index 1b4e3dbc..95a18382 100644 --- a/apps/logicsrc-web/e2e/logicsrc.spec.ts +++ b/apps/logicsrc-web/e2e/logicsrc.spec.ts @@ -65,8 +65,8 @@ test.describe("LogicSRC PWA", () => { await expect(page.getByRole("heading", { name: "Hire Us", exact: true })).toBeVisible(); await expect(page.locator(".price-row strong", { hasText: "$400" })).toBeVisible(); - await expect(page.getByText("per hour")).toBeVisible(); - await expect(page.getByText("Ten-hour minimum engagement")).toBeVisible(); + await expect(page.getByText("per agent-hour", { exact: true })).toBeVisible(); + await expect(page.getByText("Ten-agent-hour minimum engagement")).toBeVisible(); await expect(page.getByText("open infrastructure and open specs for AI agent systems")).toBeVisible(); await expect(page.getByRole("button", { name: "Request review" })).toBeVisible(); await expect(page.getByPlaceholder("you@example.com")).toBeVisible(); diff --git a/apps/logicsrc-web/src/app/[[...slug]]/page.tsx b/apps/logicsrc-web/src/app/[[...slug]]/page.tsx index f9608eb9..de2d2337 100644 --- a/apps/logicsrc-web/src/app/[[...slug]]/page.tsx +++ b/apps/logicsrc-web/src/app/[[...slug]]/page.tsx @@ -25,7 +25,7 @@ const ROUTE_META: Record = { }, "hire-us": { title: "Hire Us · LogicSRC", - description: "Implementation help for LogicSRC, AgentSwarm, and Credential Sharing at $400/hour for accepted work, paid via CoinPay.", + description: "Implementation help for LogicSRC, AgentSwarm, and Credential Sharing at $400/hour/agent for accepted work, paid via CoinPay.", }, // /agent-swarm was the AgentSwarm placeholder band. It is now the OpenFleet // spec at app/openfleet; next.config.ts redirects the old path there. diff --git a/apps/logicsrc-web/src/app/about/page.tsx b/apps/logicsrc-web/src/app/about/page.tsx index 5c3ea77c..5e2e2e2a 100644 --- a/apps/logicsrc-web/src/app/about/page.tsx +++ b/apps/logicsrc-web/src/app/about/page.tsx @@ -84,7 +84,7 @@ export default function AboutPage(): ReactNode {

Work with us

- Profullstack implements LogicSRC-based systems at $400/hour for + Profullstack implements LogicSRC-based systems at $400/hour/agent for accepted work, paid via CoinPay. See Hire Us.

diff --git a/apps/logicsrc-web/src/app/api/hire-us/coinpay-checkout/route.ts b/apps/logicsrc-web/src/app/api/hire-us/coinpay-checkout/route.ts index b2607a1e..de58a61d 100644 --- a/apps/logicsrc-web/src/app/api/hire-us/coinpay-checkout/route.ts +++ b/apps/logicsrc-web/src/app/api/hire-us/coinpay-checkout/route.ts @@ -5,12 +5,13 @@ import { choosePaymentRail, fetchMerchantEligibility, parseJson } from "@/lib/co export const dynamic = "force-dynamic"; // POST /api/hire-us/coinpay-checkout — create a CoinPay checkout for approved -// Hire Us hours at $400/hour, choosing card/crypto/both based on merchant +// Hire Us hours at $400/hour/agent, choosing card/crypto/both based on merchant // eligibility. Billing is metered: the caller supplies the approved hours and the // amount is derived from them, never a fixed recurring figure. const RATE_USD_PER_HOUR = 400; const MINIMUM_HOURS = 10; +// Hours represent total approved agent-hours, not wall-clock duration. // Hours are quoted in quarter-hour increments; anything finer is a rounding // artifact rather than a real billing unit. function parseHours(value: unknown): number | null { @@ -43,7 +44,7 @@ export async function POST(request: NextRequest) { return json( { success: false, - error: `Approved hours must be a quarter-hour increment of at least ${MINIMUM_HOURS}` + error: `Approved agent-hours must be a quarter-hour increment of at least ${MINIMUM_HOURS}` }, 422 ); @@ -69,7 +70,7 @@ export async function POST(request: NextRequest) { payment_method: paymentRail.method, currency: paymentRail.currency, ...(paymentRail.blockchain ? { blockchain: paymentRail.blockchain } : {}), - description: `LogicSRC Hire Us - ${hours}h @ $${RATE_USD_PER_HOUR}/hour`, + description: `LogicSRC Hire Us - ${hours} agent-hours @ $${RATE_USD_PER_HOUR}/agent-hour`, success_url: `${publicUrl}/hire-us?payment=success`, cancel_url: `${publicUrl}/hire-us?payment=cancelled`, redirect_url: `${publicUrl}/hire-us?payment=coinpay`, @@ -77,6 +78,7 @@ export async function POST(request: NextRequest) { metadata: { product: "logicsrc-hire-us", billing: "metered_hours", + unit: "agent_hour", hours, rate_usd_per_hour: RATE_USD_PER_HOUR, source: "logicsrc.com/hire-us", diff --git a/apps/logicsrc-web/src/app/api/hire-us/project-request/route.ts b/apps/logicsrc-web/src/app/api/hire-us/project-request/route.ts index 947af4d4..1c695b35 100644 --- a/apps/logicsrc-web/src/app/api/hire-us/project-request/route.ts +++ b/apps/logicsrc-web/src/app/api/hire-us/project-request/route.ts @@ -4,7 +4,7 @@ import { json } from "@/lib/http"; export const dynamic = "force-dynamic"; // POST /api/hire-us/project-request — accept a Hire Us project request before any -// CoinPay invoice is created. Hire Us bills metered hours at $400/hour, so there is +// CoinPay invoice is created. Hire Us bills metered hours at $400/hour/agent, so there is // no amount until we accept the project and hours are approved. const RATE_USD_PER_HOUR = 400; const MINIMUM_HOURS = 10; diff --git a/apps/logicsrc-web/src/app/llms.txt/route.ts b/apps/logicsrc-web/src/app/llms.txt/route.ts index 56421493..14165788 100644 --- a/apps/logicsrc-web/src/app/llms.txt/route.ts +++ b/apps/logicsrc-web/src/app/llms.txt/route.ts @@ -43,7 +43,7 @@ ${guides} ## Company & legal - [About](${SITE_URL}/about): What LogicSRC is and who maintains it (Profullstack, Inc.). -- [Hire Us](${SITE_URL}/hire-us): Implementation help at $400/hour for accepted LogicSRC work. +- [Hire Us](${SITE_URL}/hire-us): Implementation help at $400/hour/agent for accepted LogicSRC work. - [Pricing](${SITE_URL}/pricing) - [Terms](${SITE_URL}/terms) - [Privacy](${SITE_URL}/privacy) diff --git a/apps/logicsrc-web/src/app/pricing/page.tsx b/apps/logicsrc-web/src/app/pricing/page.tsx index 70e18886..1391e8e7 100644 --- a/apps/logicsrc-web/src/app/pricing/page.tsx +++ b/apps/logicsrc-web/src/app/pricing/page.tsx @@ -5,7 +5,7 @@ import { SiteShell } from "@/components/site-shell"; export const metadata: Metadata = { title: "Pricing · LogicSRC", description: - "LogicSRC the open specification, schemas, SDKs, and CLI are free and open source. Implementation help is $400/hour for accepted work, paid via CoinPay.", + "LogicSRC the open specification, schemas, SDKs, and CLI are free and open source. Implementation help is $400/hour/agent for accepted work, paid via CoinPay.", alternates: { canonical: "/pricing" }, }; @@ -16,7 +16,7 @@ const FAQ: Array<{ q: string; a: string }> = [ }, { q: "How does pricing work?", - a: "The standard is free. If you want Profullstack to build a LogicSRC-based system for you, implementation work is billed at $400/hour against actual hours worked, invoiced through CoinPay after you approve them. The minimum engagement is 10 hours.", + a: "The standard is free. If you want Profullstack to build a LogicSRC-based system for you, implementation work is billed at $400/hour/agent against actual agent-hours worked, invoiced through CoinPay after you approve them. The minimum engagement is 10 agent-hours.", }, { q: "Who is LogicSRC for?", @@ -61,10 +61,10 @@ export default function PricingPage(): ReactNode { CLI, TUI, and reference plugins are open source.
  • - Implementation — $400/hour. Profullstack builds + Implementation — $400/hour/agent. Profullstack builds LogicSRC-based systems for accepted projects, billed against actual hours worked and invoiced via CoinPay once you approve them. - Ten-hour minimum engagement. See Hire Us and{" "} + Ten-agent-hour minimum engagement. See Hire Us and{" "} Terms.
  • diff --git a/apps/logicsrc-web/src/app/skill.md/route.ts b/apps/logicsrc-web/src/app/skill.md/route.ts index 72cc583e..c186dc6c 100644 --- a/apps/logicsrc-web/src/app/skill.md/route.ts +++ b/apps/logicsrc-web/src/app/skill.md/route.ts @@ -27,7 +27,7 @@ Base URL: ${SITE_URL} - Read the LogicSRC coordination schemas and conventions. - Compare LogicSRC with OpenSpec.dev. - Request paid implementation help via the Hire Us flow (${SITE_URL}/hire-us), - billed at $400/hour for accepted work and paid through CoinPay. + billed at $400/hour/agent for accepted work and paid through CoinPay. ## Notes diff --git a/apps/logicsrc-web/src/app/terms/page.tsx b/apps/logicsrc-web/src/app/terms/page.tsx index 1000721f..22b7d894 100644 --- a/apps/logicsrc-web/src/app/terms/page.tsx +++ b/apps/logicsrc-web/src/app/terms/page.tsx @@ -5,7 +5,7 @@ import { SiteShell } from "@/components/site-shell"; export const metadata: Metadata = { title: "Terms · LogicSRC", description: - "Terms of engagement for LogicSRC: the specification and tooling are open source and free; Profullstack implementation work is billed at $400/hour against approved hours, with a 10-hour minimum.", + "Terms of engagement for LogicSRC: the specification and tooling are open source and free; Profullstack implementation work is billed at $400/hour/agent against approved hours, with a 10-agent-hour minimum.", alternates: { canonical: "/terms" }, }; @@ -35,7 +35,7 @@ export default function TermsPage(): ReactNode {

    Rate

    Profullstack implementation work is billed at{" "} - $400 per hour. One rate applies to all + $400 per agent-hour. One rate applies to all implementation work — specs, CLIs, SDKs, MCP resources, APIs, PWAs, and provider-neutral plugin surfaces. There are no tiers, role-based rates, or volume discounts. @@ -56,10 +56,11 @@ export default function TermsPage(): ReactNode {

    How you are invoiced

    - Billing is metered against actual hours worked, not a subscription. + Billing is metered against actual agent-hours worked. Two agents working + five hours use ten agent-hours and cost $4,000. After we accept a project, we send you a record of hours worked. Once you approve those hours, we issue a CoinPay invoice for exactly that - amount at $400/hour. You are never charged for hours you have not + amount at $400/hour/agent. You are never charged for hours you have not seen and approved.

    @@ -69,7 +70,7 @@ export default function TermsPage(): ReactNode {

    Minimum engagement

    - The minimum engagement is 10 hours. Engagements + The minimum engagement is 10 agent-hours. Engagements smaller than this do not cover the cost of scoping and context, so we will decline them rather than quote them.

    diff --git a/apps/logicsrc-web/src/components/home-interactivity.tsx b/apps/logicsrc-web/src/components/home-interactivity.tsx index 467ccce9..5dff8237 100644 --- a/apps/logicsrc-web/src/components/home-interactivity.tsx +++ b/apps/logicsrc-web/src/components/home-interactivity.tsx @@ -45,7 +45,7 @@ export function HomeInteractivity(): null { } result.replaceChildren( - buildParagraph("Request received. If it is a fit, we will scope the work and invoice approved hours at $400/hour via CoinPay.") + buildParagraph("Request received. If it is a fit, we will scope the work and invoice approved hours at $400/hour/agent via CoinPay.") ); } catch (error) { result.replaceChildren( diff --git a/apps/logicsrc-web/src/lib/page-markup.ts b/apps/logicsrc-web/src/lib/page-markup.ts index 35a24e9d..6fc0f80f 100644 --- a/apps/logicsrc-web/src/lib/page-markup.ts +++ b/apps/logicsrc-web/src/lib/page-markup.ts @@ -72,9 +72,9 @@ const pages = [ { id: "blog", title: "Blog", detail: "Project notes for LogicSRC, AgentSwarm, AgentByte, OpenSpec workflows, and reference implementations." }, { id: "openspec", title: "OpenSpec", detail: "Comparison and compatibility notes for OpenSpec.dev-style repo-local specs, proposals, tasks, and deltas." }, { id: "credential-sharing", title: "Credential Sharing", detail: "Open replacement architecture for portable secret sync across end-to-end-encrypted team vaults, .env, Doppler, Railway variables, GitHub Secrets, and sh1pt." }, - { id: "hire-us", title: "Hire Us", detail: "$400/hour LogicSRC work on open infrastructure, specs, AI agent workflows, and reference implementations paid through CoinPay after project acceptance." }, + { id: "hire-us", title: "Hire Us", detail: "$400/hour/agent LogicSRC work on open infrastructure, specs, AI agent workflows, and reference implementations paid through CoinPay after project acceptance." }, { id: "about", title: "About", detail: "LogicSRC is the Profullstack open specification project for human and AI agent coordination." }, - { id: "terms", title: "Terms", detail: "Terms of engagement: the $400/hour rate, what is billable, how approved hours are invoiced, the 10-hour minimum, cancellation, acceptable use, and reference implementation boundaries." }, + { id: "terms", title: "Terms", detail: "Terms of engagement: the $400/hour/agent rate, what is billable, how approved hours are invoiced, the 10-agent-hour minimum, cancellation, acceptable use, and reference implementation boundaries." }, { id: "privacy", title: "Privacy", detail: "What this site collects and what it does not: analytics, the Hire Us form, the CoinPay sign-in cookie, and where credential data does and does not go." } ]; @@ -363,7 +363,7 @@ logicsrc secrets ssh agent profullstack # load into ssh-agent, never onto disk<

    Hire Us

    -

    $400/hour for accepted LogicSRC work using open infrastructure and open specs for AI agent systems.

    +

    $400/hour/agent for accepted LogicSRC work using open infrastructure and open specs for AI agent systems.

    @@ -372,9 +372,9 @@ logicsrc secrets ssh agent profullstack # load into ssh-agent, never onto disk<

    Hire us to turn agent ideas into portable LogicSRC specs, CLIs, SDKs, MCP resources, PWAs, APIs, and provider-neutral plugin workflows. We prioritize auditable contracts, repo-local artifacts, and integrations that can move between model providers and infrastructure.

    $400 - per hour + per agent-hour
    -

    Billed against actual hours worked, invoiced after you approve them. Ten-hour minimum engagement; cancel any time with one week’s notice and pay only for hours already approved. See Terms.

    +

    Billed against actual agent-hours worked, invoiced after you approve them. Ten-agent-hour minimum engagement; cancel any time with one week’s notice and pay only for hours already approved. See Terms.

    CoinPay hourly invoice

    -

    After we accept the project, we invoice approved hours at $400/hour through CoinPay without exposing merchant credentials to the browser.

    +

    After we accept the project, we invoice approved hours at $400/hour/agent through CoinPay without exposing merchant credentials to the browser.

    COINPAY_ORG=profullstack
     COINPAY_PRODUCT=logicsrc-hire-us
     COINPAY_RATE_USD_PER_HOUR=400