Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ dist/
.pytest_cache/
.coverage
.knoten.lock
build/
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,13 +188,22 @@ your `graph.yaml` says they mean — the core checks `node_types` for membership
nothing else. A shape that recurs:

```
source ─▶ idea ─▶ hypothesis ─▶ experiment ─▶ finding
└────── findings open new ideas ────────┘
question ─▶ source ─▶ idea ─▶ hypothesis ─▶ experiment ─▶ finding
└────── findings open new ideas ──────┘

gate stands outside the loop: the bar every claim must survive
```

A graph begins with **one question, statement or task**, and `knoten init` scaffolds it as
a node rather than leaving it as prose — so a finding can be traced back to the question it
serves, and a second sub-question has somewhere to live. From there the usual move is to
investigate **sources**: papers, blogposts, datasets, searches. Work that starts from your
own head instead is not an exception — write `source-own-intuition` and cite it the same
way. One rule, every time: an idea names where it came from. It also makes an
uncomfortable question answerable — how much of this graph rests on hunches rather than on
having read anything?

The names above are a convention, not a rule — `knoten viz` lays columns out in that
order and puts anything it does not recognise after the ones it does. (`method` is
deliberately unused: the rename in #15 freed the word for "the approach derived from
Expand Down Expand Up @@ -239,7 +248,8 @@ Because it invents none, the only place your words can be *defined* is your own

```yaml
node_types:
source: external material the work starts from — a paper, dataset or search
question: what this graph exists to answer — a question, a statement or a task
source: where the work came from — a paper, dataset, search, or your own intuition
idea: what you took from a source; a direction, not yet a testable claim
hypothesis: a falsifiable claim derived from an idea
experiment: the test built to verify or falsify a hypothesis
Expand Down
11 changes: 8 additions & 3 deletions SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,17 @@ A research graph that remembers what did NOT work. Run `knoten` in the graph dir
**Read it first** — knoten defines none of these words, so `hypothesis` means whatever
that graph says it means. A common shape:

source ─▶ idea ─▶ hypothesis ─▶ experiment ─▶ finding
└────── findings open new ideas ────────┘
question ─▶ source ─▶ idea ─▶ hypothesis ─▶ experiment ─▶ finding
└────── findings open new ideas ──────┘

gate stands outside the loop: the bar every claim must survive

A graph starts from ONE question, statement or task — `knoten init` scaffolds it, and
everything else descends from it. Investigate sources first (papers, posts, datasets,
searches); if the work starts from your own head instead, record that as a source too, so
an idea always names where it came from.

Those names are the order `knoten viz` lays columns out in; a type it does not know lands
after the ones it does. Links are a list, so one hypothesis can carry several experiments
and several findings.
Expand Down
9 changes: 5 additions & 4 deletions SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,12 @@ rather than thinking.**

### Node types (conventions, not hardcoded)

`source` · `idea` · `hypothesis` · `experiment` · `finding` · `retraction` · `gate`
`question` · `source` · `idea` · `hypothesis` · `experiment` · `finding` · `retraction` · `gate`

A convention only — the core checks `node_types` for membership and nothing else. `gate`
stands outside the loop the others form: it is the bar a claim must survive, not a stage
it passes through. `method` is deliberately unclaimed; the rename that freed it reserved
A convention only — the core checks `node_types` for membership and nothing else. A graph
begins with a `question` and everything descends from it; a `source` is where the work came
from, including the author's own intuition. `gate` stands outside the loop the others form:
it is the bar a claim must survive, not a stage it passes through. `method` is deliberately unclaimed; the rename that freed it reserved
it for "the approach derived from findings that survived", and nothing implements that
yet.

Expand Down
10 changes: 0 additions & 10 deletions build/lib/knoten/__init__.py

This file was deleted.

181 changes: 0 additions & 181 deletions build/lib/knoten/attachments.py

This file was deleted.

Loading
Loading