MakingHistory/TODO.md

132 lines
4.2 KiB
Markdown

# TODO
**N.B.** The terminology used herein is definitely a work in progress, ...
along with all other aspects.
Throughout this document we will fall back on activity pub parlance, though the
concepts should apply to any decentralised communication; or at least those
which follow a pub/sub model.
## Premises
The following premises should be true - WIP.
- Per instance:
- The instance itself is an "actor"
- Purely automated; a conglomeration of any other actors within the
instance
- potentially groups and users (human actors)
- newswire, stories, ...? (other automated actors)
- The newswire stream is an actor (subscribe and publish)
- The stories stream is an actor (publish only)
- Per user:
- Any user of the instance is actually a curator (moderator)
- all other access is public
- individual users are _not_ actors (?)
## Aim
The aim for the initial phase(s) is to implement the following five functions,
referenced from: https://hamishcampbell.com/omn-projects-are-tools-for-you-to-change-and-challenge-the-world-we-live-and-die-in/
- Link / Subscribe
- Plumb a new pipe into the network. A flow of content comes in or goes out.
Each pipe can connect to any other function.
- Trust / Moderate
- Flow passes through a sieve. Trusted content moves smoothly; noise gets
filtered. You can send flows straight through, into holding tanks, or
split them into new pipes.
- Rollback
- Empty the tank, rewind a flow, or remove specific objects. Essential for
correcting errors, spam, or bad data.
- Edit Metadata
- Add tags or notes to the “tail” of a data object. Metadata determines how
content gets sieved and aggregated. This is the backbone of news curation
in the OMN.
- Publish
- Add new content objects into the flow. Optionally editable. Publishing is
just another pipe into the system. At the core sits the storage tank:
a simple database holding all the flows.
## Phase 1
The following terms are purely for differentiating between certain implementation details.
Key:
```
"PUBLIC": Viewable when not logged in
"USER": Viewable when logged in
"MOD": Viewable when logged in with sufficient permissions
```
> Q. (Saunders): Users being those who _are_, or _are not_ involved with the output of a given instance?
> i.e. would they actively be publishing content on the instance, or something else?
### Behaviour
- [ ] 'Events'
- A "federated flow" of events; an input feed of items related to the
theme/topics of the MakingHistory instance. UI/X name may differ but
this is short and useful for code.
- All visible tags can be a flow, we like nature metaphors so we use flow;
the only thing that would not flow is the mod (not trusted) items.
- _Emissary Template; based on 'inbox' ?_
- PUBLIC:
- (syn. Newswire)
- View
- [ ] Curated (syn. Moderated)
- [ ] Most recent N items
- [ ] Dynamic load earlier items on request (e.g. scroll)
- MOD:
- (syn. Mod Flow)
- Flagged items could end up here?
- View
- [ ] Uncurated (syn. Unmoderated)
- (See PUBLIC)
- Edit: Mark item(s) as "public"/"private"
- Filters (hash tags, users, whole instances, ...)
- Individual items/objects
- [ ] 'Stories'
- (syn. Features)
- _Emissary Template(s)_
- based on ?
- PUBLIC:
- View
- [ ] Filter by tag ?
- [ ] Search ?
- USER:
- View
- (See PUBLIC)
- Save filter(s)
- MOD:
- View
- (See USER)
- Create/Edit
- [ ] Interactive version of 'Federated Flow' to cite/reference
- Filters
- Checkboxes (or equivalent) per item
- [ ] 'Tagflow'
- _Emissary Template; based on ?_
- USER:
- View
- [ ] Tweet-deck style dashboard of parallel tag/stream views
- Create/Edit
- [ ] Custom streams based on filter set
- [ ] Boolean logic
### Structure
- [ ] Groups:
- _Emissary groups_
- Curators (syn. Moderators)
- other?
Rest looks fine, more questions :)