diff --git a/404.html b/404.html index 2a23864..fedb9c2 100644 --- a/404.html +++ b/404.html @@ -30,12 +30,12 @@
SYBERLABS - +
Menu
diff --git a/approach/index.html b/approach/index.html index a18ae39..43e43ca 100644 --- a/approach/index.html +++ b/approach/index.html @@ -28,12 +28,12 @@
SYBERLABS - +
Menu
diff --git a/factory/factory.css b/factory/factory.css new file mode 100644 index 0000000..b10b076 --- /dev/null +++ b/factory/factory.css @@ -0,0 +1,49 @@ +/* The factory page: the homepage's near-black stage, off-white type and restrained cyan (kit/v2, immersive direction). + One column of reading, a numbered line for the Build Thread, a grid of guarantees, and an honest list of limits. */ +body.syber-factory { background:#030708; } +.syber-factory .sy-field-host { display:none; } +.factory { padding-bottom:40px; } +.factory h2 { margin:0 0 14px; font:500 clamp(28px,3.4vw,44px)/1.1 var(--sy-sans); letter-spacing:-.03em; color:var(--sy-vellum); } +.factory h3 { margin:0; font:500 20px/1.3 var(--sy-sans); letter-spacing:-.015em; color:var(--sy-vellum); } +.factory p { color:var(--sy-mist); } +.factory a:not(.sy-btn) { color:var(--sy-ice); text-underline-offset:4px; } +.factory :focus-visible { outline:2px solid var(--sy-ice); outline-offset:4px; } +.factory section { padding-block:72px; border-top:1px solid var(--sy-rule); } + +.factory-hero { border-top:0 !important; padding-top:clamp(56px,10vh,110px) !important; } +.factory-hero__emblem { display:block; width:clamp(110px,12vw,170px); height:auto; margin-bottom:22px; mix-blend-mode:screen; } +.factory-hero h1 { max-width:14ch; margin:16px 0 22px; font:500 clamp(46px,6.4vw,92px)/.98 var(--sy-sans); letter-spacing:-.05em; color:var(--sy-vellum); } +.factory-lede { max-width:52ch; margin:0; font-size:clamp(18px,1.6vw,21px); line-height:1.55; color:#d3dbdc !important; } +.factory-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; margin:28px 0 0; } +.factory-links .sy-btn { min-height:44px; padding:0 20px; border-radius:2px; font-size:14px; background:#eeece7; border-color:#eeece7; color:#070b0d; box-shadow:none; } +.factory-links a:not(.sy-btn) { display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:15px; } + +.factory-note { max-width:60ch; margin:0 0 30px; font-size:16px; line-height:1.6; } +.factory-line { display:grid; margin:0; padding:0; list-style:none; } +.factory-line li { display:grid; grid-template-columns:64px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--sy-rule); } +.factory-line li:first-child { border-top:0; } +.factory-line__n { color:var(--sy-ice); font:400 13px/1.9 var(--sy-mono); } +.factory-line p { max-width:66ch; margin:10px 0 0; font-size:16px; line-height:1.65; } +.factory-line .factory-never { position:relative; padding-left:16px; font-size:14px; color:var(--sy-dim); } +.factory-line .factory-never::before { content:""; position:absolute; left:0; top:.6em; width:6px; height:6px; border:1px solid var(--sy-dim); border-radius:50%; } + +.factory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 56px; margin:26px 0 0; } +.factory-grid dt { color:var(--sy-vellum); font:500 19px/1.3 var(--sy-sans); } +.factory-grid dd { margin:10px 0 0; color:var(--sy-mist); font-size:15px; line-height:1.65; } + +.factory-self-built { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,6vw,90px); align-items:center; } +.factory-self-built p { max-width:54ch; font-size:16px; line-height:1.65; } +.factory-self-built figure { margin:0; } +.factory-self-built img { display:block; width:100%; height:auto; mix-blend-mode:screen; -webkit-mask-image:radial-gradient(closest-side,#000 72%,transparent 100%); mask-image:radial-gradient(closest-side,#000 72%,transparent 100%); } +.factory-self-built figcaption { padding-top:8px; text-align:center; color:var(--sy-dim); font-size:12px; } + +.factory-limits ul { display:grid; gap:14px; max-width:70ch; margin:16px 0 0; padding:0; list-style:none; } +.factory-limits li { position:relative; padding-left:20px; color:var(--sy-mist); font-size:15px; line-height:1.65; } +.factory-limits li::before { content:"·"; position:absolute; left:4px; color:var(--sy-ice); } +.factory-limits em { color:var(--sy-vellum); font-style:normal; } + +@media (max-width:800px) { + .factory section { padding-block:52px; } + .factory-grid, .factory-self-built { grid-template-columns:1fr; } + .factory-line li { grid-template-columns:40px 1fr; gap:12px; } +} diff --git a/factory/index.html b/factory/index.html new file mode 100644 index 0000000..7b0099b --- /dev/null +++ b/factory/index.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + The Factory | SyberLabs + + + Skip to content + +
+ +
+
+ +

SyberLabs / The factory

+

The autonomous software factory.

+

Agents write, test and repair code on their own. SyberWork, the factory floor, runs every check itself, keeps a signed record of each step, and lets nothing reach your branch until a person admits it.

+ +
+ +
+

One change, step by step

+

A Build Thread is one governed change to one repository. Each step writes to the record, and each has a line it never crosses.

+
    +
  1. 01

    Start

    Pins the base commit, the contract version and the paths the change may touch.

    Never moves a branch or touches your working tree.

  2. +
  3. 02

    Context

    Chooses the excerpts an agent will read from path and symbol matches, and records why each one was chosen. No embeddings.

    Never stores the excerpt text; it is re-read from Git when an agent runs.

  4. +
  5. 03

    Propose

    Model adapters write candidates as Git commits on side refs. The default repair loop sends the host’s own check results back to the model until a candidate passes or the budget runs out; an evolutionary search is the alternative. On the factory’s own benchmark fixtures, repair solved more tasks per dollar, so it is the default.

    Never edits your working tree. A model saying its tests pass is shown as unverified and changes nothing.

  6. +
  7. 04

    Check

    The host runs the contract’s checks on the candidate’s exact tree, in a fresh worktree with a scrubbed environment, and records each result’s state, exit code and output digest. An independent critic reviews the change; the critic can never be the candidate’s own author, and a high finding blocks acceptance.

    Never counts a provider’s claim as a result.

  8. +
  9. 05

    Admit

    Twenty-one ordered admission rules decide, the first to answer wins, and agents and people face the same rules. A person accepts the candidate, or a second person with the right role approves it first.

    The only write is a compare-and-swap of the thread’s own branch: no push, no merge, no change to main.

  10. +
  11. 06

    Publish

    Pushing the branch, opening a pull request and publishing a package are separate actions, each admitted, each recorded, each safe to retry and reconcile.

    Accepting never publishes on its own.

  12. +
+
+ +
+

What the record guarantees

+
+
Observed by the host
Check results are processes the host started on a tree it wrote, not reports from an agent.
+
Chained and signed
Every event joins a hash chain. A separate witness process holds the key that signs the chain head and appends to a transparency log.
+
Budgeted
A contract can price each model. The host measures the spend, stops a search at its dollar limit, and refuses to admit a change the thread could not afford.
+
Measured
Each work item reports its cost, turns, agent time, fix rounds, lookups, review rejections and human interventions, each traced to the events it came from.
+
+
+ +
+
+

Built by its own factory

+

SyberWork’s own pull requests run through a Build Thread before they merge. The receiving repository checks out the change, proposes it as a candidate, runs its tests and conformance on the exact tree, and admits it under the same rules. Each pull request carries the trail: who admitted it, the rules review, and the host’s checks.

+

The GitHits client and its Claude Code wiring were made this way.

+ +
+
Glowing blue nodes joined by arcing links, like a network of agents.
Network and emblem: Mateo Robles, made with Midjourney.
+
+ +
+

Where the claims stop

+
    +
  • Checks run in a temporary worktree with a scrubbed environment. That is not a sandbox, so untrusted agent code runs as a separate command.
  • +
  • An admitted change is tested: the named checks passed on that tree. It is not proof that the change is right, wanted, measured or deployed.
  • +
  • The hash chain is integrity evidence inside its database’s trust boundary, not a public transparency service.
  • +
  • Browser verification of documentation with Attest and Kane is designed, not built.
  • +
+
+
+ + + diff --git a/index.html b/index.html index 5c8b674..cea8e28 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ - + @@ -15,15 +15,15 @@ - - + + - + - - - - SyberLabs | Research studio founded by Mateo Robles + + + + SyberLabs | The autonomous software factory