few people write elaborate macros, many people use others' macros and sometimes tweak them
who is the target user?
pim enthusiast who wants to customize chandler, to a particular workflow or methodology
someone who's programming skills are equivalent to a macro developer or light scripter (javascript)
someone who wants to avoid overhead of building chandler, using svn, etc.
what is the ui for scripts?
where do scripts live?
how are they edited?
how do they integrate with the system?
current ui ok for one time action, doesn't really address "agent" scripts or scripts that extend/add functionality
what apis are available to the scripts?
api to access, extend and customize UI (blocks, menus, events)
api to access model (pim, collections)
api to drive ui the way a user would (discoverable)
agent, background daemon scripts to automate tasks
how limited should scripting be? should scripters be able to do any development a parcel developer could? should scripters be given a more narrow/structured box to work in?
goal: allow a bigger community of people to experiment with creating new features
types of scripts
one time action
adding new features/extending chandler
agent
possible features
# of items in collection displayed in sidebar
create a new item from the clipboard
automate repetitive things
export favorite calendars, marking some items as private based on some criteria
move things from some collection (IN) to some other collection based on some custom or complex critieria
mail
auto reply
filtering
mail templates
events
add everyone's birthday without manually jumping around and creating by hand
invite the same set of people to meetings
create meeting agenda with standard template
GTD nanny
workflow forms processing
view customization: display custom field in calendar view
integrating with other apps
clipboard data turns into chandler items (dnd, imported files)
define new schema (kinds, add attributes to kinds, create enumerations etc.)
current problem where we'd need a parcel space to do this
what would be needed to support this?
CRUD (create, retrieve, update, delete) API for domain model items
sensible API for manipulating collections
access to global environment
clipboard
well known collections
prefs and styles
selected date
add actions
accessible from menu, toolbar
automate actions ("agent")
solve the problem of parcel space needed to create schema