nosedive 2026.7.3-1783050006066
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/bin/nosedive.js +30 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Nosedive
|
|
2
|
+
|
|
3
|
+
**_nosedive_ turns a plain notes repo into a hub for cross-repo work** — a place where a
|
|
4
|
+
developer (and their agents) can safely pick up a piece of work that spans
|
|
5
|
+
several repositories, do it, and get it reviewed, without the usual friction of
|
|
6
|
+
juggling clones, branches, context, and half-remembered state.
|
|
7
|
+
|
|
8
|
+
## The problem
|
|
9
|
+
|
|
10
|
+
Enterprise work rarely fits inside one repository. A change to a shared library ripples
|
|
11
|
+
into three services; a feature needs edits in the backend, the client, and the
|
|
12
|
+
infra repo at once. Today that means:
|
|
13
|
+
|
|
14
|
+
- **Lost context.** Every repo is a separate world. Where was I? What was this
|
|
15
|
+
branch for? What still needs review?
|
|
16
|
+
- **Unsafe agent use.** Handing an AI agent a shell in a shared repo is risky. Worktrees
|
|
17
|
+
mitigate this, but are focused on a single repo and quickly become cumbersome.
|
|
18
|
+
- **Friction in the author → review loop.** Starting a unit of work, tracking it,
|
|
19
|
+
and shepherding it through review is manual and inconsistent across people.
|
|
20
|
+
|
|
21
|
+
_nosedive_ addresses these by making the unit of work a first-class, on-disk object,
|
|
22
|
+
creating effort-scoped multi-repo workspaces, and by routing developer actions through
|
|
23
|
+
explicit, contract-checked commands that are equally safe for a human or an agent to run.
|
|
24
|
+
|
|
25
|
+
## Efforts and sessions
|
|
26
|
+
|
|
27
|
+
_nosedive_ organizes work around two core concepts, both of which live as plain files on disk:
|
|
28
|
+
|
|
29
|
+
- **Effort** — a unit of (potentially cross-repo) work to be designed and built. Each effort
|
|
30
|
+
has a plan document and lives under `./efforts`. The `EffortName` matches the
|
|
31
|
+
effort slug, e.g. `./efforts/dev-actions/DevActions.md`. Sub-efforts are just
|
|
32
|
+
nested directories: `./efforts/dev-actions/workon/Workon.md`.
|
|
33
|
+
- **Session** — an actual working session on an effort. Sessions live under
|
|
34
|
+
`./sessions`. Starting or resuming a session is how a developer (or agent)
|
|
35
|
+
"picks up" an effort and gets back into context.
|
|
36
|
+
|
|
37
|
+
This model is **dogfooded**: _nosedive_ is itself built from a set of efforts and
|
|
38
|
+
sessions, and the very same structure is the product surface end users get after
|
|
39
|
+
installing the package.
|
|
40
|
+
|
|
41
|
+
## Development
|
|
42
|
+
|
|
43
|
+
### Versioning + publishing
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm login
|
|
47
|
+
```
|
package/bin/nosedive.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const { version } = require("../package.json");
|
|
6
|
+
|
|
7
|
+
const USAGE = `Usage: nosedive <command>
|
|
8
|
+
|
|
9
|
+
Commands:
|
|
10
|
+
version Print the package version
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
const [command] = process.argv.slice(2);
|
|
14
|
+
|
|
15
|
+
switch (command) {
|
|
16
|
+
case "version":
|
|
17
|
+
case "--version":
|
|
18
|
+
case "-v":
|
|
19
|
+
console.log(version);
|
|
20
|
+
break;
|
|
21
|
+
case undefined:
|
|
22
|
+
case "help":
|
|
23
|
+
case "--help":
|
|
24
|
+
case "-h":
|
|
25
|
+
console.log(USAGE);
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
console.error(`Unknown command: ${command}\n\n${USAGE}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nosedive",
|
|
3
|
+
"version": "2026.7.3-1783050006066",
|
|
4
|
+
"description": "Turns a plain notes repo into a hub for cross-repo work.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"cli",
|
|
7
|
+
"workflow",
|
|
8
|
+
"multi-repo"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Dan Stace <dstace@gmail.com>",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/sycdan/nosedive.git"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"bin": {
|
|
18
|
+
"nosedive": "bin/nosedive.js"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"bin"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"test": "node bin/nosedive.js version"
|
|
28
|
+
}
|
|
29
|
+
}
|