技能潮 SkillTide 提交收录
官方说明开源项目7 天前
false-systems/sykli

false-systems/sykli

Content-addressed evaluator for declared work graphs, with delta selection, caching, and repository-bound…
在 GitHub 查看 ↗直链 · 无中转页
★ 数取值
2 ★ · false-systems/sykli · 取自 GitHub 搜索 API · (2026-10-16 20:00:20 核对)
来源明细
从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
收录与活跃
收录于 2026-10-10 · 最近见到 2026-10-16 · 共见到 11 次 · 被 1 个来源列出
评分构成
综合分 103 · 2 ★ · 1 个来源 · repo
常见问题(答案都来自我们的记录)
怎么安装?
我们【没有】从该仓库取到安装命令(我们的 install 覆盖率只有约 4%)。请看它的 README 或 releases 页。
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库 false-systems/sykli;我们收录于 2026-10-10;最近见到 2026-10-16。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。
第三方质量标记

sykli

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

sykli — Finnish for cycle
Run your checks. Reuse the work. Explain the result.
Demo ·
Quick start ·
How it works ·
CI ·
Agents ·
Commands
Sykli is one binary that turns your repository's checks into a **declared
graph**. It runs the graph in order, **reuses** any result whose inputs haven't
changed, and writes a **receipt** that ties every outcome to the exact tree it
ran against. It works the same on your laptop, in CI and for a coding agent.
Keep Cargo, npm, Go and your shell scripts. Sykli doesn't replace your tools. It
decides which of them need to run and keeps a verifiable record of what did.
See it in 30 seconds
Two tasks, lint then test, each reading one script. Real output, hashes shortened:
Once the code changes, the old receipt no longer verifies. The whole graph is
below; copy it and try this yourself.
Start in your repository
Install from source with Rust 1.85 or newer:
Then, in an existing Cargo, npm or Go repository:
init creates .sykli/ for local state and adds it to .gitignore. Review the
inputs it declares, especially configuration and fixtures, and declare files you
add later. Task execution needs Git, a POSIX sh and your project's own
toolchain. On Windows, Git for Windows supplies sh.
> [!NOTE]
> This README describes main. For a reproducible install, replace
> --branch main with --rev COMMIT. Tagged downloads will be listed on the
> releases page once
> published, and install.sh verifies their checksums. Installing
> Sykli does not install your build tools.
How it works
It comes down to three things:
| | What it is | Where it lives |
|---|---|---|
| **Contract** | The work you declare: tasks, commands, the files each one reads, and what runs after what. | sykli.json, pinned by sykli.lock |
| **Receipt** | One evaluation: commands, outcomes, output digests, and which results were reused. | .sykli/receipts/ (and wherever you redirect --json) |
| **Verify** | A check that a receipt is consistent with the tree and contract in front of you. | sykli verify |
**Reuse is earned, not assumed.** A task's cache key covers its declaration,
the contents and execute bits of its declared inputs, the runtime fingerprint,
digests of inherited environment values, and the cache keys of every task it
runs after. A downstream task never reuses a pass recorded against upstream
outputs it did not see, and a matching entry must validate before it is used.
In a Cargo graph the runtime fingerprint also covers the Rust toolchain the
task shell resolves (rustc -vV, cargo -V), so a pass recorded under one
compiler is not reused under another.
A graph you can try
In a scratch Git repository:
inputs names the files a task reads. after makes test wait for lint and
binds its cache key to that dependency. Independent tasks run in parallel.
Every path a task declares (inputs, outputs, workdir) is relative to the
repository and stays inside it. Absolute paths and .. are refused when the
contract is validated, before anything runs, so a receipt is always a claim
about the repository it sits in, even when the contract is kept
outside it. sykli validate
checks a contract without running it.
What a task sees when it runs
Tasks run under sh -c with no stdin. They receive PATH, HOME and TMPDIR,
plus declared env values and named inherit variables. Inherited values reach
the task, but only their digests reach the receipt, where they count toward the
task's identity. A declared value may name ${worktree_cache}, a directory of
the worktree's own
(one build directory per worktree). Task
output is captured, so commands are responsible for what they print. Sykli runs
local commands with your permissions.
Ask before you run
plan --explain tells you what a run would do and what the cache can supply,
without running anything:
It reads sykli.json by default; an explicit JSON contract path selects another
graph. It runs no task or Rust emitter, restores no outputs, and writes no cache
entries or receipts.
| Cache state | What it tells you |
|---|---|
| available | Cached evidence and artifacts validate; a run can attempt reuse. |
| missing | No entry exists for the current content key. |
| invalid | An entry exists, but its evidence or artifacts failed validation. |
| deferred | A dependency needs execution, restoration or error resolution first. |
| input_error | A declared input cannot currently be evaluated. |
**Undeclared files are flagged.** Explain warns about changed files that no task
lists as an input, even when every task is already selected. It checks staged,
unstaged and untracked non-ignored files, and --base origin/main adds
来源
github · https://github.com/false-systems/sykli
按领域浏览
开源项目
Traction
2 ★
收录于
昨天

更多开源项目

查看开源项目全部 731 条 →

所属领域与标签

每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。

浏览全部领域 →

← 返回索引