lifestyle script

Table of Contents

lifestyle script is a dialect of lisp to script individual human’s behaviours in the context of their lifestyle.

1. Writing lifestyle script: primitives

A lifestyle script is filled with rules defined by rule macro.

1.1. Rules: (rule trigger action)

define rule of one’s action to a trigger.

trigger
when the rule is activated could be automated predicate like timer or stub to be called yourself like “feeling like netflix”
action
what to do when the rule is activated could be automation like “set alarm for xxx long” or stub prompt like “meditate”(and set alarm)

1.2. Triggers

Here are some primitives for triggers.

absolute-timer time
time as in 20:00. Would be triggered
relative-timer trigger duration
time as in 30 minutes after wake up
completion action
reference to the action is required for this.
custom-trigger label
“feeling urge of netflix”, “forgetting what to search”, triggers that can’t be monitored from outside of one’s mind.

1.3. Actions

prompt
display a prompt for action (action elt), if elt is a string, is equivallent to (action (prompt elt) )
human executor
prompt corresponds to actions/stubs that are not automatable with machine, and must be performed by the human, like brush teeth or make meal.
set-timer name duration
set a timer (like 30minutes for meditation)
(no term)
getting input
read prompt
display a prompt and a text field for input
select prompt options
display a prompt and a list of options, return selected option
select-absolute-time prompt
display a prompt and a absolute time selector
select-duration prompt
display a prompt and a duration selector
(no term)
completing
  • complete signal the action to be completed. The rule goes on being triggered if (complete) is not called.
  • wait-timers timer... wait for timers to complete

1.4. Routine: (routine clauses)

register the routine to the global routine list. each clause looks like (trigger action). A shortcut :then can be put in trigger field to refer to completion of last action A shortcut :after duration can be put in trigger filed to refer to duration of time(30m) after completion of last action

to include another routine in a routine, insert a clause (:then another-routine), which would treat the routine like all of it’s clauses are inserted in place.

1.5. Primitive Actions

a selected set of primitive action. documentation could address the state it intends to transist from and to

1.6. Tracking

tracking are ignored for physical copy export, or may include custom behaviour like “write log on global capture” (or maybe there could be templates and notation for simple pen and paper or other physical places tracking, like “write down current time on capture place with label meditation-start”)

1.7. Global object

rules
where applicable rules register. The current working rule set
routines
the currtne working routine set

1.8. Stop - priority and graceful halt

priority between rules is not defined as of now. Right now the syntax assume there to be no priority, while multiple rules can be triggered at the same time, and man could choose while not having to choose a specific one, and not having to halt when any other rule are triggered.

However living-essential emergency such as hungar could oppress the script, and a graceful halt could be applied on that senario.

1.8.1. stop action

triggered when script oppressed.

(rule (stop)
      (action (prompt )))

2. Using lifestyle script   ATTACH

lifestyle script source file could be used in daily life-living in at least 2 forms:

  • physical copy/export styled cheatsheet, org-mode text…
    • variable names are not necessary - trigger brief is necessary create a keyword :title for the trigger.
    • seperate ambient trigger and daily routines
    • only display triggers and actions trigger-title -> action1 -> action2 _20240121_220510screenshot.png
  • mobile application an app where you can switch between scripts, have automated timer trigger, action prompt and

2.1. TODO write those 2 software companions.

for mobile application
I had written a clojurescript application with KRG paradigm kernel-routine that bears a similar idea, to provide options based on triggered rules, and act as an external “top of the mind”.
for physical copy
this should be easy with some html+css magic, just like markdown except that parsing is lispy and easier.

2.2. Using physical lifestyle script

Print/write the script on a paper. And check it. An ideal way is to use an apropriate number of intermediate variabels, and have sorted unique id’s to refer to them. Example as follows:

(setq sleep-early (rule (absolute-timer "21:00")
                        (action (prompt "prepare for sleep")))
        )

3. The human processor of lifestyle script: 3 layer model

The lifestyle script is not executed by a computer program, it is executed by a human, very likely who wrote the script.

A -like paradigm of human behaviour is assumed:

level-3 living-essential
level-2 script
level-1 spontaneity

with living-essential oppressing script and spontaneity, and script oppressing spontaneity.

What this means is that with script, you halt only when living-essentials are triggered like being very hungary or dehydrated. Whenever a rule in the script is triggered, and there’s no living emergency (which your body would tell), you halt any act of spontaneity, and do the action in the script.

3.1. example

3.1.1. scenario one: script oppressing spontaneity - sleep

21:00, you are playing game out of spontaneity. then sleep-early triggered, the action of which is to prepare for sleep(brush teeth, shut down devices, tyding space, wash), then you immediately halt the game, and do the sleep preparation.

3.1.2. scenario two: living-essential oppressing script - poop

21:00 when triggered sleep preparation, you feels like to poop. You poop then. and after it’s done, you go back to the triggered rule

Backlinks

life

(Be honest and truthful - facts and observations)

Author: Linfeng He

Created: 2024-04-03 Wed 20:16