Back to the catalog

Start here

Bundle OKF 0.2 · 2 conceitos · agpalindrome/time-value

Open source Repository Open in the app JSON README (API)

About

The knowledge behind this library: the finance it implements, where each claim
came from, and the standing rules the code is built under. The code implements
this bundle — where the two disagree, one of them is wrong, and it is not
automatically the bundle.

Claims are marked by where they come from. A footnote means a source supports
it; otherwise it is labelled **Decided** (a choice that could have gone
otherwise) or **Derived** (a consequence of something already established).

# Start here

Read the principles once; they govern everything. Read the domain concepts for
the work in hand.

| if you are… | read |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| changing any code at all | every [principle](principles/), then the domain concepts your change touches |
| implementing or altering a formula | that formula's concept, then ev

Details

Kind
OKF bundles
Topic
No topic detected
Publisher
agpalindrome
Origin
okf_github
Category
dados
Version
0.2
Last push
2026-08-20T03:09:14Z
Repository state
ativo
Language
Rust
License
Apache-2.0
Added
2026-09-09 05:06:57
Updated
2026-09-09 05:06:57
Origin id
agpalindrome/time-value:knowledge/index.md

README

# time-value

Type-safe time-value-of-money calculations in Rust.

A Cargo workspace whose published crate is [`time_value`](crates/time_value).
Two unpublished crates sit beside it: [`time-value-cli`](crates/time-value-cli),
which installs the `time-value` command, and `crates/bundle-check`, which exists
so the knowledge bundle's invariants are asserted rather than eyeballed.

The library comes first and the surfaces follow it — a feature is modelled and
built in `time_value`, then exposed in the CLI, then in the MCP server. A
surface validates nothing of its own.

Nothing here is published. The `0.1.0`–`0.8.0` series on crates.io is a
separate, immutable history that this line does not continue.

## The Knowledge Bundle

[`knowledge/`](knowledge/) is an [Open Knowledge Format][okf] bundle and this
project's authoritative documentation: what each formula is, where its
definition came from, which convention was followed where sources disagree, and
what has deliberately been left open. There are no ADRs.

Concepts come before code. A formula is modelled first, and the implementation
follows the model — so the bundle is worth reading before the source, not after.

Each claim says where it came from. A footnote means a source supports it;
otherwise it is labelled **Decided** or **Derived**, so a reader can tell a
choice from a consequence. Most of it is ours: the sources give formulas and
little else.

[okf]:
  https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md

## Development

```sh
nix develop           # toolchain, bacon, nextest, cargo-deny, prettier, hooks
bacon                 # continuous clippy
```

Everything CI runs, runs the same way locally — CI runs this exact script:

```sh
nix develop -c ./scripts/check.sh            # everything
nix develop -c ./scripts/check.sh clippy     # one check, by name
```

It reports every check rather than stopping at the first failure, and refuses to
run against a stable `rustfmt`, which would silently ignore most of
`rustfmt.toml` and pass anyway.

The knowledge bundle is checked by those tests too — its structure and links by
[`okf-graph`](https://crates.io/crates/okf-graph), and its frontmatter by the
stricter rules this repo holds itself to.

## Repo settings

This repo's own GitHub rulesets are version-controlled in
[`.github/rulesets/`](.github/rulesets/) and reconciled by
`scripts/settings.sh --check` / `--apply`.

## License

Licensed under either of [Apache-2.0](LICENSE-APACHE) or [MIT](LICENSE-MIT) at
your option.

More