diff --git a/docs/content/getting-started/hof-attributes.md b/docs/content/getting-started/hof-attributes.md
index ba91d8dd..af6ad39f 100644
--- a/docs/content/getting-started/hof-attributes.md
+++ b/docs/content/getting-started/hof-attributes.md
@@ -5,12 +5,31 @@ weight: 70
---
{{}}
-Hof denotes major features with a `#hof` definition
-and has several attributes you can use as shorthand.
+The `#hof` definition is how generators, datamodels, and workflows are discovered.
+Several attributes allow you to write shorthand for common settings.
{{}}
-- @gen
-- @flow
-- @datamodel
+
+### The Attributes
+
+By now, you have seen hof's attributes in the previous getting-started sections.
+Hof turns these CUE attributes into `#hof` configuration.
+
+- `@gen()` - the root of a generator
+- `@datamodel()` - the root of a datamodel
+- `@flow()` - the root of a workflow or a task type
+
+Datamodels and workflows have a few more attributes
+that can be specified under their root.
+They are covered in the respective sections on each.
+
+### Schema
+
+The following is the schema for `#hof`.
+Many generators, workflows, and datamodels
+you import and use will fill this in for you.
+
+You can embed the following schema in order to reference the content.
+Hof will automatically inject it during the loading process to ensure correctness.
{{< codePane title="hof/schema.Hof" file="code/hof-schemas/hof.html" >}}
diff --git a/docs/content/getting-started/task-engine.md b/docs/content/getting-started/task-engine.md
index 2054197c..10955021 100644
--- a/docs/content/getting-started/task-engine.md
+++ b/docs/content/getting-started/task-engine.md
@@ -55,18 +55,18 @@ Global Flags:
### Tasks & Schemas
You can find the schema and example for all tasks in
-[the hof/flow reference section](/reference/hof-flow/tasks/)
+[the hof/flow reference section](/task-engine/tasks/)
-- `api`
+- [api](/task-engine/tasks/api/)
- Call
- Serve
-- `csp` (communicating sequential processes)
+- [`csp`](/task-engine/tasks/csp/) (communicating sequential processes)
- Chan
- Send
- Recv
-- `cue`
+- [`cue`](/task-engine/tasks/cue/)
- Format (print incomplete to concrete CUE values)
-- `gen` (generate random values)
+- [`gen`](/task-engine/tasks/gen/) (generate random values)
- Seed
- Now
- Str
@@ -76,11 +76,11 @@ You can find the schema and example for all tasks in
- UUID
- CUID
- Slug
-- `hof`
+- [`hof`](/task-engine/tasks/hof/)
- Template (render a hof text/template)
-- `kv`
+- [`kv`](/task-engine/tasks/kv/)
- Mem (in-memory cache)
-- `os`
+- [`os`](/task-engine/tasks/os/)
- Exec
- FileLock
- FileUnlock
@@ -94,9 +94,9 @@ You can find the schema and example for all tasks in
- Stdout
- Watch
- WriteFile
-- `prompt`
+- [`prompt`](/task-engine/tasks/prompt/)
- Prompt (interactive user prompts, like creators)
-- `st` (structural)
+- [`st`](/task-engine/tasks/st/) (structural)
- Mask
- Pick
- Insert
diff --git a/docs/content/task-engine/_index.md b/docs/content/task-engine/_index.md
index 7ba55d01..f730e98d 100644
--- a/docs/content/task-engine/_index.md
+++ b/docs/content/task-engine/_index.md
@@ -37,73 +37,7 @@ It has more task types and capabilities.
hof flow -h
-{{}}
-run file(s) through the hof/flow DAG engine
-
-Use hof/flow to transform data, call APIs, work with DBs,
-read and write files, call any program, handle events,
-and much more.
-
-'hof flow' is very similar to 'cue cmd' and built on the same flow engine.
-Tasks and dependencies are inferred.
-Hof flow has a slightly different interface and more task types.
-
-Docs: https://docs.hofstadter.io/data-flow
-
-Example:
-
- @flow()
-
- call: {
- @task(api.Call)
- req: { ... }
- resp: {
- statusCode: 200
- body: string
- }
- }
-
- print: {
- @task(os.Stdout)
- test: call.resp
- }
-
-Arguments:
- cue entrypoints are the same as the cue cli
- @path/name is shorthand for -f / --flow should match the @flow(path/name)
- +key=value is shorthand for -t / --tags and are the same as CUE injection tags
-
- arguments can be in any order and mixed
-
-@flow() indicates a flow entrypoint
- you can have many in a file or nested values
- you can run one or many with the -f flag
-
-@task() represents a unit of work in the flow dag
- intertask dependencies are autodetected and run appropriately
- hof/flow provides many built in task types
- you can reuse, combine, and share as CUE modules, packages, and values
-
-Usage:
- hof flow [cue files...] [@flow/name...] [+key=value] [flags]
-
-Aliases:
- flow, f
-
-Flags:
- -d, --docs print pipeline docs
- -f, --flow strings flow labels to match and run
- -h, --help help for flow
- -l, --list list available pipelines
- --progress print task progress as it happens
- -s, --stats Print final task statistics
- -t, --tags strings data tags to inject before run
-
-Global Flags:
- -p, --package string the Cue package context to use during execution
- -q, --quiet turn off output and assume defaults at prompts
- -v, --verbose int set the verbosity of output
-{{< /codeInner >}}
+{{}}
@@ -112,15 +46,12 @@ Global Flags:
`hof/flow` accepts CUE entrypoints like the other commands.
There is CLI sugar for
-- flows: `@path/name` is sugar for `-f path/name`
+- flows: `@path/name` is sugar for `-F path/name`
- tags: `+key=value` is sugar for `-t key=value`
-Flags:
+Useful Flags:
-- `-f`/`@` is used to select a flow by name in `@flow()`
+- `-F`/`@` is used to select a flow by name in `@flow()`
- `-t`/`+` is used to inject strings into tags `@tag()`
-- `-l`/`--list` prints the list of discovered flows
-- `-d`/`--docs` prints additional flow details and docs
- `--progress` will print task progress for the events found, pre, & post
-- `--stats` will print task times and dependencies at completion